• Suzuki Poulose's avatar
    powerpc: Export memory limit via device tree · 4bc77a5e
    Suzuki Poulose authored
    The powerpc kernel doesn't export the memory limit enforced by 'mem='
    kernel parameter. This is required for building the ELF header in
    kexec-tools to limit the vmcore to capture only the used memory. On
    powerpc the kexec-tools depends on the device-tree for memory related
    information, unlike /proc/iomem on the x86.
    
    Without this information, the kexec-tools assumes the entire System
    RAM and vmcore creates an unnecessarily larger dump.
    
    This patch exports the memory limit, if present, via
    chosen/linux,memory-limit
    property, so that the vmcore can be limited to the memory limit.
    
    The prom_init seems to export this value in the same node. But doesn't
    really
    appear there.  Also the memory_limit gets adjusted with the processing of
    crashkernel= parameter. This patch makes sure we get the actual limit.
    
    The kexec-tools will use the value to limit the 'end' of the memory
    regions.
    
    Tested this patch on ppc64 and ppc32(ppc440) with a kexec-tools
    patch by Mahesh.
    Signed-off-by: default avatarSuzuki K. Poulose <suzuki@in.ibm.com>
    Tested-by: default avatarMahesh J. Salgaonkar <mahesh@linux.vnet.ibm.com>
    Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
    4bc77a5e
machine_kexec.c 6.48 KB