----- Original Message ----- > In fact,vmemmap not easy to calculated in crash-utility,if > CONFIG_RANDOMIZE_BASE is configured,memstart_addr will be changed since below codes: > [arm64_memblock_init] > 348 vmemmap = ((struct page *)VMEMMAP_START - (memstart_addr >> PAGE_SHIFT)); > ... > 413 if (IS_ENABLED(CONFIG_RANDOMIZE_BASE)) { > 414 extern u16 memstart_offset_seed; > 415 u64 range = linear_region_size - > 416 (memblock_end_of_DRAM() - memblock_start_of_DRAM()); > 417 > 418 /* > 419 * If the size of the linear region exceeds, by a sufficient > 420 * margin, the size of the region that the available physical > 421 * memory spans, randomize the linear region as well. > 422 */ > 423 if (memstart_offset_seed > 0 && range >= ARM64_MEMSTART_ALIGN) { > 424 range /= ARM64_MEMSTART_ALIGN; > 425 memstart_addr -= ARM64_MEMSTART_ALIGN * > 426 ((range * memstart_offset_seed) >> 16); > 427 } > 428 } OK. > > the reason i showed the "address_markers " is just to prove vmemmap and > ms->vmemmap_start is wrong.we'd better to do below change. > - vmemmap_start = (-vmemmap_size); > + vmemmap_start = (-vmemmap_size - MEGABYTES(2)); This looks correct, although I've never seen a problem using the current setting on 5.4 and later kernels. What happens on your system? Is your system's memstart_addr within that low 2MB? Thanks, Dave -- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/crash-utility