Re: [TECH TOPIC] Implementing malloc

"H. Peter Anvin" <[email protected]> Mon, 29 Jun 2026 08:21:08 -0700
Newsgroups dev.linux.lists.ksummit
Message-ID <[email protected]>
On June 29, 2026 8:07:43 AM PDT, Dan Carpenter <[email protected]> wrote:
>On Mon, Jun 29, 2026 at 03:29:42PM +0100, Matthew Wilcox wrote:
>> malloc() is a standard part of the C library.  Yet we force new Linux
>> programmers to learn the difference between vmalloc(), kmalloc() and
>> kvmalloc().  They even have to acquire an understanding of the difference
>> between GFP_KERNEL and GFP_ATOMIC.  If they are particularly unlucky,
>> they may have to understand other combinations of GFP flags.
>> 
>> This topic proposes that we should implement malloc() and calloc().
>> Various options will be discussed, their increasing implementation
>> complexity corresponding to utility in a greater range of situations.
>> This will also benefit Rust as we can use the same infrastructure to
>> implement std::alloc.
>> 
>> We'll also discuss the semantics of corner cases (fallibility, zero
>> sized allocations, overflowing allocations and very large allocations)
>> as well as out-of-bounds and use-after-free detection.
>
>I'm not sure I understand.  You're saying that it's too complicated
>and then you're suggesting we introduce a new kind of allocation function
>as the fix.  It feels like the classic XKCD comic about standards:
>https://xkcd.com/927/
>
>Are we just collecting a wish list?
>
>I wish that we would just acknowledge say that small allocations cannot
>fail.  We could add a BUILD_BUG_ON() in km/zalloc_obj() which ensures that
>it is only used for small allocations.  Then we could remove all the
>error handling from those.
>
>With regards to use after frees, my impression is that the places which
>use caches are the worst affected and also where we do the worst at
>detecting them?  Does KASAN detect use after frees with kmem_cache and
>mempools?
>
>regards,
>dan carpenter
>
>
>

It's like memory management in a kernel is difficult or something...