Re: [PATCH] mm/slab: improve kmem_cache_alloc_bulk

"Vlastimil Babka (SUSE)" <[email protected]>
Newsgroups org.kernel.vger.io-uring,org.freedesktop.lists.dri-devel,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 6/1/26 13:38, Christoph Hellwig wrote:
> On Mon, Jun 01, 2026 at 10:16:30AM +0200, Vlastimil Babka (SUSE) wrote:
>> > kmem_cache_alloc_bulk() returning 0 was considered a success in that case.
>> > 
>> > Either fixing kmem_cache_alloc_bulk() (and the comment) or fixing the
>> > user sounds fine to me.
>> 
>> Would it be wrong if we just returned true for size of 0? Would something
>> else break?
> 
> I don't think it is wrong per se, but it feels like the wrong kind of
> API.  I.e. I don't think the MSM caller actually wants this, as they'd
> also do a zero-sized kvmalloc.

If p->count is 0 then indeed there's a zero-sized kvmalloc so p->pages ==
ZERO_SIZE_PTR but then nothing breaks because nothing tries to dereference it?

msm_iommu_pagetable_prealloc_cleanup() has a "if (p->count > 0)" branch so
it seems it's considered possible. But then the rest of the functions also
seems working fine, i.e. kmem_cache_free_bulk() of zero size does nothing,
kvfree() of ZERO_SIZE_PTR does nothing.

It seems to me kmem_cache_alloc_bulk() returning true for size == 0 fits
naturally in this world and is less likely to result in a gotcha?
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.