Re: [PATCH v8] mm/memblock: Add memblock_alloc_or_panic interface
From: Andrew Morton
Date: Thu Jan 02 2025 - 18:08:41 EST
On Thu, 2 Jan 2025 15:25:28 +0800 Guo Weikang <guoweikang.kernel@xxxxxxxxx> wrote:
> Before SLUB initialization, various subsystems used memblock_alloc to
> allocate memory. In most cases, when memory allocation fails, an immediate
> panic is required. To simplify this behavior and reduce repetitive checks,
> introduce `memblock_alloc_or_panic`. This function ensures that memory
> allocation failures result in a panic automatically, improving code
> readability and consistency across subsystems that require this behavior.
Just to be annoying...
We now have many more calls to memblock_alloc_or_panic() than to
memblock_alloc(). So perhaps memblock_alloc() should default to
panicing and we add a new memblock_alloc_no_panic() for the exceptional
cases.
And from looking around a bit, I think many of the remaining calls to
memblock_alloc() could be made to panic on failure anyway. If the
kernel cannot successfully execute memblock_alloc(small amount) at
__init time then the kernel is hopelessly broken and there's no point
in proceeding?
In fact I wonder if there is really any legitimate use of
memblock_alloc_no_panic()?