[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4b687334-9667-2655-ab5b-a1aecedb5591@suse.cz>
Date: Tue, 24 Oct 2023 10:20:10 +0200
From: Vlastimil Babka <vbabka@...e.cz>
To: Chengming Zhou <chengming.zhou@...ux.dev>, cl@...ux.com,
penberg@...nel.org
Cc: rientjes@...gle.com, iamjoonsoo.kim@....com,
akpm@...ux-foundation.org, roman.gushchin@...ux.dev,
42.hyeyoo@...il.com, willy@...radead.org, pcc@...gle.com,
tytso@....edu, maz@...nel.org, ruansy.fnst@...itsu.com,
vishal.moola@...il.com, lrh2000@....edu.cn, hughd@...gle.com,
linux-kernel@...r.kernel.org, linux-mm@...ck.org,
Chengming Zhou <zhouchengming@...edance.com>
Subject: Re: [RFC PATCH v2 0/6] slub: Delay freezing of CPU partial slabs
On 10/24/23 04:20, Chengming Zhou wrote:
> On 2023/10/23 23:46, Vlastimil Babka wrote:
>> Or more precisely, instead of returning the acquired "object" we would
>> return the first slab removed from partial list. I think it would simplify
>> the code a bit, and further reduce list_lock holding times.
>
> Ok, I will do this in the next version. But I find we have to return the object
> in the "IS_ENABLED(CONFIG_SLUB_TINY) || kmem_cache_debug(s)" case, in which
> we need to allocate a single object under the node list_lock.
Ah, right.
> Maybe we can use "struct partial_context" to return the object in this case?
>
> struct partial_context {
> - struct slab **slab;
> gfp_t flags;
> unsigned int orig_size;
> + void *object;
> };
>
> Then we can change all get_partial interfaces to return a slab. Do you agree
> with this way?
Yeah, good idea! Thanks!
Powered by blists - more mailing lists