On 6/9/24 4:32 PM, Jason A. Donenfeld wrote: > Hi Julia & Vlastimil, > > On Sun, Jun 09, 2024 at 10:27:13AM +0200, Julia Lawall wrote: >> Since SLOB was removed, it is not necessary to use call_rcu >> when the callback only performs kmem_cache_free. Use >> kfree_rcu() directly. > > Thanks, I applied this to the wireguard tree, and I'll send this out as > a fix for 6.10. Let me know if this is unfavorable to you and if you'd > like to take this somewhere yourself, in which case I'll give you my > ack. > > Just a question, though, for Vlastimil -- I know that with the SLOB > removal, kfree() is now allowed on kmemcache'd objects. Do you plan to > do a blanket s/kmem_cache_free/kfree/g at some point, and then remove > kmem_cache_free all together? Hmm, not really, but obligatory Cc for willy who'd love to have "one free() to rule them all" IIRC. My current thinking is that kmem_cache_free() can save the kmem_cache lookup, or serve as a double check if debugging is enabled, and doesn't have much downside. If someone wants to not care about the kmem_cache pointer, they can use kfree(). Even convert their subsystem at will. But a mass conversion of everything would be rather lot of churn for not much of a benefit, IMHO.