All of lore.kernel.org
 help / color / mirror / Atom feed
From: Pratyush Yadav <pratyush@kernel.org>
To: Mike Rapoport <rppt@kernel.org>
Cc: Pratyush Yadav <pratyush@kernel.org>,
	 Pasha Tatashin <pasha.tatashin@soleen.com>,
	 Alexander Graf <graf@amazon.com>,
	 Andrew Morton <akpm@linux-foundation.org>,
	 Chen Pei <cp0613@linux.alibaba.com>,
	George Guo <guodongtai@kylinos.cn>,
	 Kexin Liu <liukexin@kylinos.cn>,
	Sourabh Jain <sourabhjain@linux.ibm.com>,
	 kexec@lists.infradead.org, linux-kernel@vger.kernel.org,
	 linux-mm@kvack.org
Subject: Re: [PATCH 1/2] kho: skip zero-sized lowmem and global bootmem areas
Date: Wed, 04 Nov 2026 13:09:32 +0100	[thread overview]
Message-ID: <2vxzwlqslrwj.fsf@kernel.org> (raw)
In-Reply-To: <auoo0EOKJLn9GUIw@kernel.org> (Mike Rapoport's message of "Tue, 3 Nov 2026 20:32:48 +0200")

On Tue, Nov 03 2026, Mike Rapoport wrote:

> On Tue, Nov 03, 2026 at 03:14:36PM +0100, Pratyush Yadav wrote:
>> Hi Mike,
>> 
>> On Tue, Nov 03 2026, Mike Rapoport (Microsoft) wrote:
>> 
>> > The lowmem and the global bootmem areas can have zero size, for example
>> > when none or all of the memory is below ARCH_LOW_ADDRESS_LIMIT, or when
>> > either of those areas is explicitly set to zero with kho_bootmem=.
>> >
>> > For a zero-sized allocation memblock returns an address without reserving
>> > anything, and that empty area is recorded in kho_bootmem. If there is no
>> > memory below ARCH_LOW_ADDRESS_LIMIT, allocation of the empty lowmem area
>> > fails and KHO gets disabled.
>> >
>> > Extract a helper that checks for zero size and allocates memory from
>> > memblock, and use it to skip empty areas the same way as empty per-node
>> > areas are skipped.
>> >
>> > Fixes: 3dc92c311498 ("kexec: add Kexec HandOver (KHO) generation helpers")
>> > Reported-by: Chen Pei <cp0613@linux.alibaba.com>
>> > Closes: https://lore.kernel.org/all/20261026131851.9942-1-cp0613@linux.alibaba.com
>> > Signed-off-by: Mike Rapoport (Microsoft) <rppt@kernel.org>
>> 
>> Thanks for the patch! LGTM for the most part, one minor nitpick below.
>> 
>> > ---
>> >  kernel/liveupdate/kexec_handover.c | 61 ++++++++++++++++++--------------------
>> >  1 file changed, 29 insertions(+), 32 deletions(-)
>> >
>> > diff --git a/kernel/liveupdate/kexec_handover.c b/kernel/liveupdate/kexec_handover.c
>> > index 6f1f55fe31819..f268c57413a7e 100644
>> > --- a/kernel/liveupdate/kexec_handover.c
>> > +++ b/kernel/liveupdate/kexec_handover.c
>> > @@ -820,6 +820,27 @@ bool kho_bootmem_overlap(phys_addr_t phys, size_t size)
>> >  	return false;
>> >  }
>> >  
>> > +static int __init kho_reserve_bootmem_area(int *idx, phys_addr_t size,
>> > +					   phys_addr_t end, int nid)
>> > +{
>> > +	phys_addr_t addr;
>> > +	int i = *idx;
>> > +
>> > +	if (!size)
>> > +		return 0;
>> > +
>> > +	addr = memblock_alloc_range_nid(size, BOOTMEM_ALIGNMENT_BYTES, 0, end,
>> > +					nid, true);
>> > +	if (!addr)
>> > +		return -ENOMEM;
>> > +
>> > +	kho_bootmem[i].addr = addr;
>> > +	kho_bootmem[i].size = size;
>> > +	*idx = i + 1;
>> > +
>> > +	return 0;
>> 
>> I reckon it will be cleaner if you update kho_bootmem_cnt here directly.
>> So you directly do:
>> 
>> 	kho_bootmem[kho_bootmem_cnt].addr = addr;
>> 	kho_bootmem[kho_bootmem_cnt].size = size;
>> 	kho_bootmem_cnt++;
>> 
>> You won't have to pass around *idx and you won't need the final
>> kho_bootmem_cnt assignment.
>
> Ack.
>  
>> You might also want to have a kho_bootmem_max_cnt and do some bounds
>> checking here.
>
> Hmm, feels like over protecting. And if future patches will miss it AI will
> yell anyway :)

All right, fair enough.

-- 
Regards,
Pratyush Yadav


  reply	other threads:[~2026-11-04 12:09 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-11-03 11:49 [PATCH 0/2] kho: fix bootmem sizing Mike Rapoport (Microsoft)
2026-11-03 11:49 ` [PATCH 1/2] kho: skip zero-sized lowmem and global bootmem areas Mike Rapoport (Microsoft)
2026-11-03 14:14   ` Pratyush Yadav
2026-11-03 18:32     ` Mike Rapoport
2026-11-04 12:09       ` Pratyush Yadav [this message]
2026-11-03 19:48   ` Pasha Tatashin
2026-11-04 11:22     ` Mike Rapoport
2026-11-04 15:32       ` Pasha Tatashin
2026-11-04 16:50         ` Mike Rapoport
2026-11-03 11:49 ` [PATCH 2/2] kho: fix bootmem sizing Mike Rapoport (Microsoft)
2026-11-03 16:01   ` Pratyush Yadav
2026-11-03 18:36     ` Mike Rapoport
2026-11-04 12:13       ` Pratyush Yadav

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2vxzwlqslrwj.fsf@kernel.org \
    --to=pratyush@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=cp0613@linux.alibaba.com \
    --cc=graf@amazon.com \
    --cc=guodongtai@kylinos.cn \
    --cc=kexec@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=liukexin@kylinos.cn \
    --cc=pasha.tatashin@soleen.com \
    --cc=rppt@kernel.org \
    --cc=sourabhjain@linux.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.