Re: [PATCH] mm/slab: improve kmem_cache_alloc_bulk
Christoph Hellwig <[email protected]>
| Newsgroups | org.kernel.vger.io-uring,org.kernel.vger.bpf,org.kernel.vger.linux-arm-msm,org.kernel.vger.linux-kernel,org.kernel.vger.netdev,org.kvack.linux-mm |
|---|---|
| Message-ID | <[email protected]> |
On Wed, May 27, 2026 at 03:56:38PM +0200, Alexander Lobakin wrote: > >> -Â Â Â n -= kmem_cache_alloc_bulk(net_hotdata.skbuff_cache, > >> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â GFP_ATOMIC | __GFP_ZERO | __GFP_NOWARN, > >> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â n - nc->skb_count, &skbs[nc->skb_count]); > >> +Â Â Â if (kmem_cache_alloc_bulk(net_hotdata.skbuff_cache, > >> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â GFP_ATOMIC | __GFP_ZERO | __GFP_NOWARN, > >> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â n - nc->skb_count, &skbs[nc->skb_count])) > >> +Â Â Â Â Â Â Â n = nc->skb_count; > > kmem_cache_alloc_bulk() allocates `n - nc->skb_count`, but here you > assign `nc->skb_count` to n. > Ah wait, > > n -= n - nc->skb_count > n = n - (n - nc->skb_count) > n = n - n + nc->skb_count > n = nc->skb_count > > Correct :D Exactly the steps I went through when writing this patch :)