On Thu, May 15, 2025 at 1:45 AM Vlastimil Babka <vba...@suse.cz> wrote: > > On 5/14/25 16:01, Vlastimil Babka wrote: > > On 5/6/25 23:34, Suren Baghdasaryan wrote: > >> On Fri, Apr 25, 2025 at 1:27 AM Vlastimil Babka <vba...@suse.cz> wrote: > >>> @@ -2631,6 +2637,24 @@ static void sheaf_flush_unused(struct kmem_cache > >>> *s, struct slab_sheaf *sheaf) > >>> sheaf->size = 0; > >>> } > >>> > >>> +static void __rcu_free_sheaf_prepare(struct kmem_cache *s, > >>> + struct slab_sheaf *sheaf); > >> > >> I think you could safely move __rcu_free_sheaf_prepare() here and > >> avoid the above forward declaration. > > > > Right, done. > > > >>> @@ -5304,6 +5340,140 @@ bool free_to_pcs(struct kmem_cache *s, void > >>> *object) > >>> return true; > >>> } > >>> > >>> +static void __rcu_free_sheaf_prepare(struct kmem_cache *s, > >>> + struct slab_sheaf *sheaf) > >> > >> This function seems to be an almost exact copy of free_to_pcs_bulk() > >> from your previous patch. Maybe they can be consolidated? > > > > True, I've extracted it to __kmem_cache_free_bulk_prepare(). > > ... and that was a mistake as free_to_pcs_bulk() diverges in patch 9/9 in a > way that this makes it too infeasible
Ah, I see. Makes sense. Sorry for the misleading suggestion.