All of lore.kernel.org
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: tglx@kernel.org, ritesh.list@gmail.com, mark.rutland@arm.com,
	chao.gao@intel.com, kas@kernel.org,
	linuxppc-dev@lists.ozlabs.org, yeoreum.yun@arm.com,
	x86@kernel.org, baoquan.he@linux.dev, hbathini@linux.ibm.com,
	sourabhjain@linux.ibm.com, linux-kernel@vger.kernel.org,
	loongarch@lists.linux.dev, jbouron@amazon.com,
	dave.hansen@linux.intel.com, rafael@kernel.org, coxu@redhat.com,
	akpm@linux-foundation.org, gshan@redhat.com,
	vishal.l.verma@intel.com, ruirui.yang@linux.dev,
	seanjc@google.com, bgwin@google.com,
	"Jinjie Ruan" <ruanjinjie@huawei.com>,
	chenhuacai@kernel.org, pasha.tatashin@soleen.com,
	kees@kernel.org, me@linux.beauty, npiggin@gmail.com,
	maddy@linux.ibm.com, ruanjinjie@huawei.com, thuth@redhat.com,
	graf@amazon.com, palmer@rivosinc.com, chleroy@kernel.org,
	guodongtai@kylinos.cn, zhangtianyang@loongson.cn,
	eric.devolder@oracle.com, catalin.marinas@arm.com,
	leitao@debian.org, driver-core@lists.linux.dev, piliu@redhat.com,
	kernel@xen0n.name, dakr@kernel.org, pratyush@kernel.org,
	sshegde@linux.ibm.com, tangyouling@kylinos.cn,
	adityag@linux.ibm.com, rppt@kernel.org, mclapinski@google.com,
	takahiro.akashi@linaro.org, linux-arm-kernel@lists.infradead.org,
	will@kernel.org, ardb@kernel.org, gregkh@linuxfoundation.org,
	lizhengyu3@huawei.com, linux-mm@kvack.org, james.morse@arm.com,
	linux-fsdevel@vger.kernel.org, mpe@ellerman.id.au,
	mingo@redhat.com, bp@alien8.de, blum@kernel.org, robh@kernel.org,
	hpa@zytor.com, liukexin@kylinos.cn, maqianga@uniontech.com
Cc: kexec@lists.infradead.org
Subject: Re: [PATCH v5 17/17] arm64: crash: Add crash hotplug support
Date: Fri, 18 Sep 2026 10:36:56 +0000	[thread overview]
Message-ID: <20260918103657.0CC341F000FF@smtp.kernel.org> (raw)
In-Reply-To: <20260918100442.3841135-18-ruanjinjie@huawei.com>

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] kexec: arch_crash_get_elfcorehdr_size() exports undersized buffer when MEMORY_HOTPLUG is disabled
--

commit fd293f9cfd1a12554d9352f4ad58fc9f85721fa3
Author: Jinjie Ruan <ruanjinjie@huawei.com>
arm64: crash: Add crash hotplug support

This commit introduces kernel mechanisms to update only the elfcorehdr
on memory hotplug events for arm64. It adds ARCH_SUPPORTS_CRASH_HOTPLUG 
and implements arch-specific functions to handle memory hotplug, avoiding
full kdump image reloads from userspace.

Link: https://lore.kernel.org/all/20240529133446.28446-1-Jonathan.Cameron@huawei.com/

> diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
> index b5a51b0ef9440..96de2660b1cbb 100644
> --- a/arch/arm64/Kconfig
> +++ b/arch/arm64/Kconfig
> @@ -1720,6 +1720,9 @@ config ARCH_DEFAULT_CRASH_DUMP
>  config ARCH_HAS_GENERIC_CRASHKERNEL_RESERVATION
>  	def_bool CRASH_RESERVE
>  
> +config ARCH_SUPPORTS_CRASH_HOTPLUG
> +	def_bool y
> +

[Severity: High]
Does unconditionally enabling ARCH_SUPPORTS_CRASH_HOTPLUG here expose an
undersized buffer to userspace when CONFIG_MEMORY_HOTPLUG is disabled?

Since CONFIG_HOTPLUG_CPU natively selects CONFIG_CRASH_HOTPLUG on
architectures that support it, having this default to 'y' allows
CRASH_HOTPLUG to be active even without MEMORY_HOTPLUG. This leads to the
size calculation issue below.

[ ... ]
> diff --git a/arch/arm64/kernel/crash.c b/arch/arm64/kernel/crash.c
> new file mode 100644
> index 0000000000000..08dc9b952498e
> --- /dev/null
> +++ b/arch/arm64/kernel/crash.c
[ ... ]
> +unsigned int arch_crash_get_elfcorehdr_size(void)
> +{
> +	unsigned long phdr_cnt;
> +
> +	/* A program header for possible CPUs, vmcoreinfo and kernel_map */
> +	phdr_cnt = 2 + num_possible_cpus();
> +	if (IS_ENABLED(CONFIG_MEMORY_HOTPLUG))
> +		phdr_cnt += CONFIG_CRASH_MAX_MEMORY_RANGES;
> +

[Severity: High]
Is this calculation missing the static memory ranges when
CONFIG_MEMORY_HOTPLUG is disabled?

If compiled with CONFIG_HOTPLUG_CPU=y (which natively selects
CONFIG_CRASH_HOTPLUG) and CONFIG_MEMORY_HOTPLUG=n, phdr_cnt is computed as
exactly 2 + num_possible_cpus(). This does not account for the mandatory
memblock ranges from arch_get_system_nr_ranges(). 

Unlike x86 or powerpc which might survive this due to heavily padded
CONFIG_NR_CPUS_DEFAULT values, arm64's precise num_possible_cpus() leaves
zero headroom. As a result, the exported maximum elfcorehdr size is strictly
smaller than the required size to hold static memory ranges, and any attempt
to arm kdump (kexec -p) will fail because kexec-tools cannot load the crash
kernel into the undersized segment.

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260918100442.3841135-1-ruanjinjie@huawei.com?part=17


  reply	other threads:[~2026-09-18 10:37 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-18 10:04 [PATCH v5 00/17] crash: Rework and add arm64 crash hotplug support Jinjie Ruan
2026-09-18 10:04 ` [PATCH v5 01/17] kexec: Fix CMA segment address translation with non-zero text_offset Jinjie Ruan
2026-09-18 10:22   ` sashiko-bot
2026-09-18 10:22     ` sashiko-bot
2026-09-18 10:22     ` sashiko-bot
2026-09-18 10:04 ` [PATCH v5 02/17] kexec: Record allocated CMA pages to fix release size mismatch Jinjie Ruan
2026-09-18 10:16   ` sashiko-bot
2026-09-18 10:16     ` sashiko-bot
2026-09-18 10:16     ` sashiko-bot
2026-09-18 10:04 ` [PATCH v5 03/17] kexec: Extract kexec_free_segment_cma() from kimage_free_cma() Jinjie Ruan
2026-09-18 10:18   ` sashiko-bot
2026-09-18 10:18     ` sashiko-bot
2026-09-18 10:18     ` sashiko-bot
2026-09-18 10:04 ` [PATCH v5 04/17] arm64: kexec_file: Fix CMA page leaks in segment placement retry loops Jinjie Ruan
2026-09-18 10:15   ` sashiko-bot
2026-09-18 10:04 ` [PATCH v5 05/17] arm64: kexec_file: Fix elf_headers memory leak in retry loop Jinjie Ruan
2026-09-18 10:16   ` sashiko-bot
2026-09-18 10:16     ` sashiko-bot
2026-09-18 10:16     ` sashiko-bot
2026-09-18 10:04 ` [PATCH v5 06/17] LoongArch: kexec_file: Fix CMA page leaks in segment placement retry loops Jinjie Ruan
2026-09-18 10:16   ` sashiko-bot
2026-09-18 10:16     ` sashiko-bot
2026-09-18 10:04 ` [PATCH v5 07/17] LoongArch: kexec_file: Fix elf_headers memory leak in retry loop Jinjie Ruan
2026-09-18 10:21   ` sashiko-bot
2026-09-18 10:21     ` sashiko-bot
2026-09-18 10:21     ` sashiko-bot
2026-09-18 10:04 ` [PATCH v5 08/17] LoongArch: kexec_file: Fix a modified_cmdline leak Jinjie Ruan
2026-09-18 10:18   ` sashiko-bot
2026-09-18 10:04 ` [PATCH v5 09/17] x86/crash: Fix massive out-of-bounds write on 32-bit Highmem Jinjie Ruan
2026-09-18 10:16   ` sashiko-bot
2026-09-18 10:04 ` [PATCH v5 10/17] crash: Extract crash_get_memory_ranges() helper Jinjie Ruan
2026-09-18 10:11   ` sashiko-bot
2026-09-18 10:11     ` sashiko-bot
2026-09-18 10:11     ` sashiko-bot
2026-09-18 10:04 ` [PATCH v5 11/17] crash: Normalize the kexec_load elfcorehdr at load time Jinjie Ruan
2026-09-18 10:27   ` sashiko-bot
2026-09-18 10:27     ` sashiko-bot
2026-09-18 10:27     ` sashiko-bot
2026-09-20  3:52     ` Jinjie Ruan
2026-09-18 10:04 ` [PATCH v5 12/17] crash: Fix TOCTOU race in crash memory range collection Jinjie Ruan
2026-09-18 10:34   ` sashiko-bot
2026-09-18 10:34     ` sashiko-bot
2026-09-18 10:04 ` [PATCH v5 13/17] crash: Assert device_hotplug_lock in crash_get_memory_ranges_nolock() Jinjie Ruan
2026-09-18 10:26   ` sashiko-bot
2026-09-18 10:04 ` [PATCH v5 14/17] elf: Introduce elf64_phdr_size() helper Jinjie Ruan
2026-09-18 10:25   ` sashiko-bot
2026-09-18 10:25     ` sashiko-bot
2026-09-18 10:04 ` [PATCH v5 15/17] crash: Introduce crash_extra_elfcorehdr_size() helper Jinjie Ruan
2026-09-18 10:31   ` sashiko-bot
2026-09-18 10:04 ` [PATCH v5 16/17] arm64: kexec_file: Simplify load_other_segments() Jinjie Ruan
2026-09-18 10:27   ` sashiko-bot
2026-09-18 10:27     ` sashiko-bot
2026-09-18 10:27     ` sashiko-bot
2026-09-18 10:04 ` [PATCH v5 17/17] arm64: crash: Add crash hotplug support Jinjie Ruan
2026-09-18 10:36   ` sashiko-bot [this message]
2026-09-20  3:53     ` Jinjie Ruan
2026-09-18 10:41 ` [PATCH v5 00/17] crash: Rework and add arm64 " Breno Leitao
2026-09-20  3:13   ` Jinjie Ruan

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=20260918103657.0CC341F000FF@smtp.kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=adityag@linux.ibm.com \
    --cc=akpm@linux-foundation.org \
    --cc=ardb@kernel.org \
    --cc=baoquan.he@linux.dev \
    --cc=bgwin@google.com \
    --cc=blum@kernel.org \
    --cc=bp@alien8.de \
    --cc=catalin.marinas@arm.com \
    --cc=chao.gao@intel.com \
    --cc=chenhuacai@kernel.org \
    --cc=chleroy@kernel.org \
    --cc=coxu@redhat.com \
    --cc=dakr@kernel.org \
    --cc=dave.hansen@linux.intel.com \
    --cc=driver-core@lists.linux.dev \
    --cc=eric.devolder@oracle.com \
    --cc=graf@amazon.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=gshan@redhat.com \
    --cc=guodongtai@kylinos.cn \
    --cc=hbathini@linux.ibm.com \
    --cc=hpa@zytor.com \
    --cc=james.morse@arm.com \
    --cc=jbouron@amazon.com \
    --cc=kas@kernel.org \
    --cc=kees@kernel.org \
    --cc=kernel@xen0n.name \
    --cc=kexec@lists.infradead.org \
    --cc=leitao@debian.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=liukexin@kylinos.cn \
    --cc=lizhengyu3@huawei.com \
    --cc=loongarch@lists.linux.dev \
    --cc=maddy@linux.ibm.com \
    --cc=maqianga@uniontech.com \
    --cc=mark.rutland@arm.com \
    --cc=mclapinski@google.com \
    --cc=me@linux.beauty \
    --cc=mingo@redhat.com \
    --cc=mpe@ellerman.id.au \
    --cc=npiggin@gmail.com \
    --cc=palmer@rivosinc.com \
    --cc=pasha.tatashin@soleen.com \
    --cc=piliu@redhat.com \
    --cc=pratyush@kernel.org \
    --cc=rafael@kernel.org \
    --cc=ritesh.list@gmail.com \
    --cc=robh@kernel.org \
    --cc=rppt@kernel.org \
    --cc=ruanjinjie@huawei.com \
    --cc=ruirui.yang@linux.dev \
    --cc=sashiko-reviews@lists.linux.dev \
    --cc=seanjc@google.com \
    --cc=sourabhjain@linux.ibm.com \
    --cc=sshegde@linux.ibm.com \
    --cc=takahiro.akashi@linaro.org \
    --cc=tangyouling@kylinos.cn \
    --cc=tglx@kernel.org \
    --cc=thuth@redhat.com \
    --cc=vishal.l.verma@intel.com \
    --cc=will@kernel.org \
    --cc=x86@kernel.org \
    --cc=yeoreum.yun@arm.com \
    --cc=zhangtianyang@loongson.cn \
    /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.