From: Harry Yoo <harry.yoo@oracle.com>
To: Vlastimil Babka <vbabka@suse.cz>
Cc: akpm@linux-foundation.org, andreyknvl@gmail.com, cl@gentwo.org,
dvyukov@google.com, glider@google.com, hannes@cmpxchg.org,
linux-mm@kvack.org, mhocko@kernel.org, muchun.song@linux.dev,
rientjes@google.com, roman.gushchin@linux.dev,
ryabinin.a.a@gmail.com, shakeel.butt@linux.dev,
surenb@google.com, vincenzo.frascino@arm.com,
yeoreum.yun@arm.com, tytso@mit.edu, adilger.kernel@dilger.ca,
linux-ext4@vger.kernel.org, linux-kernel@vger.kernel.org,
cgroups@vger.kernel.org, hao.li@linux.dev
Subject: Re: [PATCH V5 3/8] ext4: specify the free pointer offset for ext4_inode_cache
Date: Thu, 8 Jan 2026 16:14:08 +0900 [thread overview]
Message-ID: <aV9ZQP6nMk8rmXy0@hyeyoo> (raw)
In-Reply-To: <e28c08e4-5048-429b-97a0-8d51e494efcd@suse.cz>
On Wed, Jan 07, 2026 at 02:54:15PM +0100, Vlastimil Babka wrote:
> On 1/5/26 09:02, Harry Yoo wrote:
> > Convert ext4_inode_cache to use the kmem_cache_args interface and
> > specify a free pointer offset.
> >
> > Since ext4_inode_cache uses a constructor, the free pointer would be
> > placed after the object to overwriting fields used by the constructor.
>
> ^ prevent?
Oops, right.
Will fix.
> > However, some fields such as ->i_flags are not used by the constructor
> > and can safely be repurposed for the free pointer.
> >
> > Specify the free pointer offset at i_flags to reduce the object size.
> >
> > Signed-off-by: Harry Yoo <harry.yoo@oracle.com>
> > ---
> > fs/ext4/super.c | 20 ++++++++++++++------
> > 1 file changed, 14 insertions(+), 6 deletions(-)
> >
> > diff --git a/fs/ext4/super.c b/fs/ext4/super.c
> > index 87205660c5d0..42580643a466 100644
> > --- a/fs/ext4/super.c
> > +++ b/fs/ext4/super.c
> > @@ -1491,12 +1491,20 @@ static void init_once(void *foo)
> >
> > static int __init init_inodecache(void)
> > {
> > - ext4_inode_cachep = kmem_cache_create_usercopy("ext4_inode_cache",
> > - sizeof(struct ext4_inode_info), 0,
> > - SLAB_RECLAIM_ACCOUNT | SLAB_ACCOUNT,
> > - offsetof(struct ext4_inode_info, i_data),
> > - sizeof_field(struct ext4_inode_info, i_data),
> > - init_once);
> > + struct kmem_cache_args args = {
> > + .align = 0,
>
> Nit: it's implicit so not necessary.
Right, will do.
> > + .useroffset = offsetof(struct ext4_inode_info, i_data),
> > + .usersize = sizeof_field(struct ext4_inode_info, i_data),
> > + .use_freeptr_offset = true,
> > + .freeptr_offset = offsetof(struct ext4_inode_info, i_flags),
> > + .ctor = init_once,
> > + };
> > +
> > + ext4_inode_cachep = kmem_cache_create("ext4_inode_cache",
> > + sizeof(struct ext4_inode_info),
> > + &args,
> > + SLAB_RECLAIM_ACCOUNT | SLAB_ACCOUNT);
> > +
> > if (ext4_inode_cachep == NULL)
> > return -ENOMEM;
> > return 0;
--
Cheers,
Harry / Hyeonggon
next prev parent reply other threads:[~2026-01-08 7:14 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-05 8:02 [PATCH V5 0/8] mm/slab: reduce slab accounting memory overhead by allocating slabobj_ext metadata within unsed slab space Harry Yoo
2026-01-05 8:02 ` [PATCH V5 1/8] mm/slab: use unsigned long for orig_size to ensure proper metadata align Harry Yoo
2026-01-07 11:43 ` Vlastimil Babka
2026-01-08 7:12 ` Harry Yoo
2026-01-08 11:39 ` Alexander Potapenko
2026-01-09 1:52 ` Harry Yoo
2026-01-09 9:30 ` Alexander Potapenko
2026-01-12 6:28 ` Harry Yoo
2026-01-05 8:02 ` [PATCH V5 2/8] mm/slab: allow specifying free pointer offset when using constructor Harry Yoo
2026-01-05 8:02 ` [PATCH V5 3/8] ext4: specify the free pointer offset for ext4_inode_cache Harry Yoo
2026-01-07 13:54 ` Vlastimil Babka
2026-01-08 7:14 ` Harry Yoo [this message]
2026-01-05 8:02 ` [PATCH V5 4/8] mm/slab: abstract slabobj_ext access via new slab_obj_ext() helper Harry Yoo
2026-01-07 14:53 ` Hao Li
2026-01-08 7:21 ` Harry Yoo
2026-01-07 14:56 ` Vlastimil Babka
2026-01-08 8:03 ` Harry Yoo
2026-01-05 8:02 ` [PATCH V5 5/8] mm/slab: use stride to access slabobj_ext Harry Yoo
2026-01-05 8:02 ` [PATCH V5 6/8] mm/memcontrol,alloc_tag: handle slabobj_ext access under KASAN poison Harry Yoo
2026-01-05 8:02 ` [PATCH V5 7/8] mm/slab: save memory by allocating slabobj_ext array from leftover Harry Yoo
2026-01-07 17:08 ` Vlastimil Babka
2026-01-05 8:02 ` [PATCH V5 8/8] mm/slab: place slabobj_ext metadata in unused space within s->size Harry Yoo
2026-01-07 17:33 ` Vlastimil Babka
2026-01-08 9:02 ` Harry Yoo
2026-01-08 5:52 ` Hao Li
2026-01-08 8:41 ` Harry Yoo
2026-01-08 9:52 ` Hao Li
2026-01-08 10:28 ` Harry Yoo
2026-01-08 10:44 ` Harry Yoo
2026-01-08 10:52 ` Vlastimil Babka
2026-01-08 12:48 ` Hao Li
2026-01-09 2:32 ` Harry Yoo
2026-01-08 11:57 ` Hao Li
2026-01-05 8:05 ` [PATCH V5 0/8] mm/slab: reduce slab accounting memory overhead by allocating slabobj_ext metadata within unsed slab space Harry Yoo
2026-01-07 17:43 ` Vlastimil Babka
2026-01-08 7:05 ` Harry Yoo
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=aV9ZQP6nMk8rmXy0@hyeyoo \
--to=harry.yoo@oracle.com \
--cc=adilger.kernel@dilger.ca \
--cc=akpm@linux-foundation.org \
--cc=andreyknvl@gmail.com \
--cc=cgroups@vger.kernel.org \
--cc=cl@gentwo.org \
--cc=dvyukov@google.com \
--cc=glider@google.com \
--cc=hannes@cmpxchg.org \
--cc=hao.li@linux.dev \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mhocko@kernel.org \
--cc=muchun.song@linux.dev \
--cc=rientjes@google.com \
--cc=roman.gushchin@linux.dev \
--cc=ryabinin.a.a@gmail.com \
--cc=shakeel.butt@linux.dev \
--cc=surenb@google.com \
--cc=tytso@mit.edu \
--cc=vbabka@suse.cz \
--cc=vincenzo.frascino@arm.com \
--cc=yeoreum.yun@arm.com \
/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.