[Crash-utility] [营销邮件] Re: [营销邮件] Re: [营销邮件] Re: [External Mail][????] Re: ramdump support for va_bits_actual
Dave Anderson
anderson at redhat.com
Mon Apr 20 14:54:24 UTC 2020
----- 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
More information about the Crash-utility
mailing list