[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