Re: [PATCH 1/5] arm64: kdump: reserve memory for crash dump kernel
From: Pratyush Anand
Date: Thu Apr 09 2015 - 09:11:11 EST
Hi Takahiro,
On Thursday 26 March 2015 01:58 PM, AKASHI Takahiro wrote:
Crash dump kernel will access memory regions in system kernel via
copy_oldmem_page(), which reads a page with ioremap'ing it assuming that
such pages are not part of main memory of crash dump kernel.
This is true under non-UEFI environment because kexec-tools modifies
a device tree adding "usablemem" attributes to memory sections.
Under UEFI, however, this is not true because UEFI remove memory sections
in a device tree and export all the memory regions, even though they belong
to system kernel.
So we should add "mem=X[MG]" boot parameter to limit the meory size and
avoid hitting the following assertion in ioremap():
if (WARN_ON(pfn_valid(__phys_to_pfn(phys_addr))))
return NULL;
Well I am using your updated kexec-tool which has support of automatic
addition of "mem=" parameter. I found that this warning is still
appearing and therefore another error about "Kdump: vmcore not initialized".
Memory address for which ioremap failed was almost at the top of
crash_reserved_mem. So I modified kexec-tool [1] to accept user specific
mem= parameter with a value lesser than physical location which was
being remapped, however still the warning was there.
Further I noticed that there is no reserved memblock with nonzero
memblock_region->size when early_mem -> memblock_enforce_memory_limit is
called. Therefore this mem= param is not limiting memory location in my
case.
I was just wondering, why do not we use ioremap_cache instead of ioremap
in copy_oldmem_page?
~Pratyush
[1]
https://github.com/pratyushanand/kexec-tools/commit/7dc38d587cb32d4522f6baf035d09eeaf71c5105
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/