Re: [External Mail] [PATCH v2 0/5] Move kvfree_rcu() into SLAB (v2)

From: Vlastimil Babka
Date: Sat Jan 11 2025 - 14:44:12 EST


On 1/6/25 08:21, Hyeonggon Yoo wrote:
>
>
> On 2024-12-13 3:02 AM, Uladzislau Rezki (Sony) wrote:
>> Hello!
>>
>> This is v2. It is based on the Linux 6.13-rc2. The first version is
>> here:
>>
>> https://lore.kernel.org/linux-mm/20241210164035.3391747-4-urezki@xxxxxxxxx/T/
>>
>> The difference between v1 and v2 is that, the preparation process is
>> done in original place instead and after that there is one final move.
>>
>> Uladzislau Rezki (Sony) (5):
>> rcu/kvfree: Initialize kvfree_rcu() separately
>> rcu/kvfree: Move some functions under CONFIG_TINY_RCU
>> rcu/kvfree: Adjust names passed into trace functions
>> rcu/kvfree: Adjust a shrinker name
>> mm/slab: Move kvfree_rcu() into SLAB
>>
>> include/linux/slab.h | 1 +
>> init/main.c | 1 +
>> kernel/rcu/tree.c | 876 ------------------------------------------
>> mm/slab_common.c | 880 +++++++++++++++++++++++++++++++++++++++++++
>> 4 files changed, 882 insertions(+), 876 deletions(-)
>
> Sorry for the late reply, but better late than never...
>
> FWIW,
>
> Acked-by: Hyeonggon Yoo <hyeonggon.yoo@xxxxxx>
> Tested-by: Hyeonggon Yoo <hyeonggon.yoo@xxxxxx>

Thanks, applied.

> Thanks for all the efforts!
>
> By the way, any future plans how to take advantage of internal slab
> state?

One way is the sheaves effort which in the last RFC also replaced the way
kfree_rcu() is handled for caches with enabled sheaves.

Perhaps even without those we could consider e.g. doing the kfree_rcu()
batching by grouping the pending frees per kmem cache, which could perhaps
lead to more efficient flushing later.

> --
> Hyeonggon