----- Original Message ----- > With kernel commit 4ffe713b7587 ("powerpc/mm: Increase the max addressable > memory to 2PB"), MAX_PHYSMEM_BITS is bumped up to 51 for SPARSEMEM_VMEMMAP > and SPARSEMEM_EXTREME case. Make the appropriate update here. > > Signed-off-by: Hari Bathini <hbathini@xxxxxxxxxxxxx> Thanks Hari -- queued for crash-7.2.5: https://github.com/crash-utility/crash/commit/fb185074415db0a63f900f46ac8635b6ed248100 Dave > --- > defs.h | 1 + > ppc64.c | 33 ++++++++++++++++++++++++++------- > 2 files changed, 27 insertions(+), 7 deletions(-) > > diff --git a/defs.h b/defs.h > index b66ccad..9ce32c1 100644 > --- a/defs.h > +++ b/defs.h > @@ -4093,6 +4093,7 @@ struct efi_memory_desc_t { > #define _MAX_PHYSMEM_BITS 44 > #define _MAX_PHYSMEM_BITS_3_7 46 > #define _MAX_PHYSMEM_BITS_4_19 47 > +#define _MAX_PHYSMEM_BITS_4_20 51 > > #endif /* PPC64 */ > > diff --git a/ppc64.c b/ppc64.c > index 041480b..485fa9d 100644 > --- a/ppc64.c > +++ b/ppc64.c > @@ -220,6 +220,31 @@ static int ppc64_is_vmaddr(ulong addr) > return (vt->vmalloc_start && addr >= vt->vmalloc_start); > } > > +static int set_ppc64_max_physmem_bits(void) > +{ > + int dimension; > + > + get_array_length("mem_section", &dimension, 0); > + > + if ((machdep->flags & VMEMMAP) && > + (THIS_KERNEL_VERSION >= LINUX(4,20,0)) && > + !dimension && (machdep->pagesize == 65536)) { > + /* > + * SPARSEMEM_VMEMMAP & SPARSEMEM_EXTREME configurations with > + * 64K pagesize and v4.20 kernel or later. > + */ > + machdep->max_physmem_bits = _MAX_PHYSMEM_BITS_4_20; > + } else if ((machdep->flags & VMEMMAP) && > + (THIS_KERNEL_VERSION >= LINUX(4,19,0))) { > + /* SPARSEMEM_VMEMMAP & v4.19 kernel or later */ > + machdep->max_physmem_bits = _MAX_PHYSMEM_BITS_4_19; > + } else if (THIS_KERNEL_VERSION >= LINUX(3,7,0)) > + machdep->max_physmem_bits = _MAX_PHYSMEM_BITS_3_7; > + else > + machdep->max_physmem_bits = _MAX_PHYSMEM_BITS; > + > + return 0; > +} > > struct machine_specific ppc64_machine_specific = { > .hwintrstack = { 0 }, > @@ -583,13 +608,7 @@ ppc64_init(int when) > ppc64_vmemmap_init(); > > machdep->section_size_bits = _SECTION_SIZE_BITS; > - if ((machdep->flags & VMEMMAP) && > - (THIS_KERNEL_VERSION >= LINUX(4,19,0))) > - machdep->max_physmem_bits = _MAX_PHYSMEM_BITS_4_19; > - else if (THIS_KERNEL_VERSION >= LINUX(3,7,0)) > - machdep->max_physmem_bits = _MAX_PHYSMEM_BITS_3_7; > - else > - machdep->max_physmem_bits = _MAX_PHYSMEM_BITS; > + set_ppc64_max_physmem_bits(); > > ppc64_init_cpu_info(); > machdep->vmalloc_start = ppc64_vmalloc_start; > > -- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/crash-utility