From: Ming Lei <ming.lei@redhat.com>
To: Christoph Hellwig <hch@infradead.org>
Cc: Jens Axboe <axboe@kernel.dk>,
linux-block@vger.kernel.org, Guangwu Zhang <guazhang@redhat.com>
Subject: Re: [PATCH] block: fix 'kmem_cache of name 'bio-108' already exists'
Date: Tue, 4 Mar 2025 09:30:34 +0800 [thread overview]
Message-ID: <Z8ZXuvo_Tx4EdLML@fedora> (raw)
In-Reply-To: <Z8XNNosGwI8wGJ0x@infradead.org>
On Mon, Mar 03, 2025 at 07:39:34AM -0800, Christoph Hellwig wrote:
> On Fri, Feb 28, 2025 at 09:26:56PM +0800, Ming Lei wrote:
> > Device mapper bioset often has big bio_slab size, which can be more than
> > 1000, then 8byte can't hold the slab name any more, cause the kmem_cache
> > allocation warning of 'kmem_cache of name 'bio-108' already exists'.
> >
> > Fix the warning by extending bio_slab->name to 12 bytes, but fix output
> > of /proc/slabinfo
> >
> > Reported-by: Guangwu Zhang <guazhang@redhat.com>
> > Signed-off-by: Ming Lei <ming.lei@redhat.com>
> > ---
> > block/bio.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/block/bio.c b/block/bio.c
> > index f0c416e5931d..6ac5983ba51e 100644
> > --- a/block/bio.c
> > +++ b/block/bio.c
> > @@ -77,7 +77,7 @@ struct bio_slab {
> > struct kmem_cache *slab;
> > unsigned int slab_ref;
> > unsigned int slab_size;
> > - char name[8];
> > + char name[12];
>
> Can you please turn this into a pointer and use kasprintf to fill
> it? That way we fix the string overflow problem for real and don't
> need to doctor around it the next time someone uses names with a
> longer name.
There isn't the overflow problem, please see create_bio_slab(), which
calls snprintf() to fill the ->name[].
Also extra 4byte can support bio size of ~10^7, which is big enough as
block layer API.
Thanks,
Ming
prev parent reply other threads:[~2025-03-04 1:31 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-28 13:26 [PATCH] block: fix 'kmem_cache of name 'bio-108' already exists' Ming Lei
2025-02-28 14:09 ` Jens Axboe
2025-03-03 15:39 ` Christoph Hellwig
2025-03-04 1:30 ` Ming Lei [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Z8ZXuvo_Tx4EdLML@fedora \
--to=ming.lei@redhat.com \
--cc=axboe@kernel.dk \
--cc=guazhang@redhat.com \
--cc=hch@infradead.org \
--cc=linux-block@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.