RE: [PATCH 4/4] mm/slub: don't read slab->cpu_partial_slabs directly

From: Song, Xiongwei
Date: Tue Apr 02 2024 - 20:11:59 EST


> CAUTION: This email comes from a non Wind River email account!
> Do not click links or open attachments unless you recognize the sender and know the content
> is safe.
>
> On 3/31/24 4:19 AM, xiongwei.song@xxxxxxxxxxxxx wrote:
> > From: Xiongwei Song <xiongwei.song@xxxxxxxxxxxxx>
> >
> > We can use slub_get_cpu_partial() to read cpu_partial_slabs.
>
> This code is under the #ifdef so it's not necessary to use the wrapper, only
> makes it harder to read imho.

Ok, got it. Will drop this one.

Thanks.

>
> > Signed-off-by: Xiongwei Song <xiongwei.song@xxxxxxxxxxxxx>
> > ---
> > mm/slub.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/mm/slub.c b/mm/slub.c
> > index ec91c7435d4e..47ea06d6feae 100644
> > --- a/mm/slub.c
> > +++ b/mm/slub.c
> > @@ -2966,7 +2966,7 @@ static void put_cpu_partial(struct kmem_cache *s, struct slab
> *slab, int drain)
> > oldslab = this_cpu_read(s->cpu_slab->partial);
> >
> > if (oldslab) {
> > - if (drain && oldslab->slabs >= s->cpu_partial_slabs) {
> > + if (drain && oldslab->slabs >= slub_get_cpu_partial(s)) {
> > /*
> > * Partial array is full. Move the existing set to the
> > * per node partial list. Postpone the actual unfreezing
>