Re: [PATCH v3 02/13] mm/slab: remove objs_per_slab()
Hao Li <[email protected]> Thu, 30 Jul 2026 19:22:09 +0800
| Newsgroups | org.kernel.vger.cgroups,org.kernel.vger.linux-kernel,org.kvack.linux-mm |
|---|---|
| Message-ID | <amszNthftz0OVxxA@fedora> |
On Mon, Jul 27, 2026 at 02:53:56PM +0200, Vlastimil Babka (SUSE) wrote: > The function has an unused kmem_cache argument and almost nothing uses > it anyway; doing slab->objects is simpler. Remove it with the last two > users. KUNIT_EXPECT_EQ() needs a cast to avoid "error: ‘typeof’ applied > to a bit-field" but we don't need to keep a wrapper just for that. > > Reviewed-by: Suren Baghdasaryan <[email protected]> > Reviewed-by: Harry Yoo (Oracle) <[email protected]> > Reviewed-by: Hao Li <[email protected]> > Reviewed-by: Suren Baghdasayan <[email protected]> Oops, the r-b tag got duplicated :) > Signed-off-by: Vlastimil Babka (SUSE) <[email protected]> > --- > mm/kfence/kfence_test.c | 2 +- > mm/slab.h | 6 ------ > mm/slub.c | 3 +-- > 3 files changed, 2 insertions(+), 9 deletions(-) > > diff --git a/mm/kfence/kfence_test.c b/mm/kfence/kfence_test.c > index de2d0f7d62b1..9867c03ef0ae 100644 > --- a/mm/kfence/kfence_test.c > +++ b/mm/kfence/kfence_test.c > @@ -295,7 +295,7 @@ static void *test_alloc(struct kunit *test, size_t size, gfp_t gfp, enum allocat > * memcg accounting works correctly. > */ > KUNIT_EXPECT_EQ(test, obj_to_index(s, slab, alloc), 0U); > - KUNIT_EXPECT_EQ(test, objs_per_slab(s, slab), 1); > + KUNIT_EXPECT_EQ(test, ((unsigned int)slab->objects), 1); > > if (policy == ALLOCATE_ANY) > return alloc; > diff --git a/mm/slab.h b/mm/slab.h > index f5e336b6b6b0..01535e1e2d3c 100644 > --- a/mm/slab.h > +++ b/mm/slab.h > @@ -330,12 +330,6 @@ static inline unsigned int obj_to_index(const struct kmem_cache *cache, > return __obj_to_index(cache, slab_address(slab), obj); > } > > -static inline int objs_per_slab(const struct kmem_cache *cache, > - const struct slab *slab) > -{ > - return slab->objects; > -} > - > /* > * State of the slab allocator. > * > diff --git a/mm/slub.c b/mm/slub.c > index d702d273253c..b94482830637 100644 > --- a/mm/slub.c > +++ b/mm/slub.c > @@ -2130,7 +2130,6 @@ int alloc_slab_obj_exts(struct slab *slab, struct kmem_cache *s, > gfp_t gfp, unsigned int alloc_flags) > { > const bool allow_spin = alloc_flags_allow_spinning(alloc_flags); > - unsigned int objects = objs_per_slab(s, slab); > bool new_slab = alloc_flags & SLAB_ALLOC_NEW_SLAB; > unsigned long new_exts; > unsigned long old_exts; > @@ -2186,7 +2185,7 @@ int alloc_slab_obj_exts(struct slab *slab, struct kmem_cache *s, > #endif > retry: > old_exts = READ_ONCE(slab->obj_exts); > - handle_failed_objexts_alloc(old_exts, vec, objects); > + handle_failed_objexts_alloc(old_exts, vec, slab->objects); > > if (new_slab) { > /* > > -- > 2.55.0 > -- Thanks, Hao