[PATCH v2] powerpc/kexec_file: account hot-pluggable memory while estimating FDT size

Subsystems: linux for powerpc (32-bit and 64-bit), the rest

STALE1294d LANDED

Landed in mainline as fc546faa5595 on 2023-02-01.

2 messages, 2 authors, 2023-02-05 · open the first message on its own page

[PATCH v2] powerpc/kexec_file: account hot-pluggable memory while estimating FDT size

From: Sourabh Jain <hidden>
Date: 2023-01-31 03:07:26

On Systems where online memory is lesser compared to max memory, the
kexec_file_load system call may fail to load the kdump kernel with the
below errors:

    "Failed to update fdt with linux,drconf-usable-memory property"
    "Error setting up usable-memory property for kdump kernel"

This happens because the size estimation for usable memory properties
for the kdump kernel's FDT is based on the online memory whereas the
usable memory properties include max memory. In short, the hot-pluggable
memory is not accounted for while estimating the size of the usable
memory properties.

The issue is addressed by calculating usable memory property size using
max hotplug address instead of the last online memory address.

Fixes: 2377c92e37fe ("powerpc/kexec_file: fix FDT size estimation for kdump kernel")
Signed-off-by: Sourabh Jain <redacted>
---
Since v2: rebase the patch on top of
http://patchwork.ozlabs.org/project/linuxppc-dev/patch/20230130014707.541110-1-mpe@ellerman.id.au/

 arch/powerpc/kexec/file_load_64.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/powerpc/kexec/file_load_64.c b/arch/powerpc/kexec/file_load_64.c
index 3caee570e79bf..6af82fb53a493 100644
--- a/arch/powerpc/kexec/file_load_64.c
+++ b/arch/powerpc/kexec/file_load_64.c
@@ -990,7 +990,7 @@ unsigned int kexec_extra_fdt_size_ppc64(struct kimage *image)
 	 * number of usable memory entries and use for FDT size estimation.
 	 */
 	if (drmem_lmb_size()) {
-		usm_entries = ((memblock_end_of_DRAM() / drmem_lmb_size()) +
+		usm_entries = ((memory_hotplug_max() / drmem_lmb_size()) +
 			       (2 * (resource_size(&crashk_res) / drmem_lmb_size())));
 		extra_size = (unsigned int)(usm_entries * sizeof(u64));
 	} else
-- 
2.39.1

Re: [PATCH v2] powerpc/kexec_file: account hot-pluggable memory while estimating FDT size

From: Michael Ellerman <hidden>
Date: 2023-02-05 09:47:01

On Tue, 31 Jan 2023 08:36:15 +0530, Sourabh Jain wrote:
On Systems where online memory is lesser compared to max memory, the
kexec_file_load system call may fail to load the kdump kernel with the
below errors:

    "Failed to update fdt with linux,drconf-usable-memory property"
    "Error setting up usable-memory property for kdump kernel"

[...]
Applied to powerpc/fixes.

[1/1] powerpc/kexec_file: account hot-pluggable memory while estimating FDT size
      https://git.kernel.org/powerpc/c/fc546faa559538fb312c77e055243ece18ab3288

cheers
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help