On Fri, 2017-06-02 at 07:30:27 UTC, Hari Bathini wrote: > By default, 5% of system RAM is reserved for preserving boot memory. > Alternatively, a user can specify the amount of memory to reserve. > See Documentation/powerpc/firmware-assisted-dump.txt for details. In > addition to the memory reserved for preserving boot memory, some more > memory is reserved, to save HPTE region, CPU state data and ELF core > headers. > > Memory Reservation during first kernel looks like below: > > Low memory Top of memory > 0 boot memory size | > | | |<--Reserved dump area -->| > V V | Permanent Reservation V > +-----------+----------/ /----------+---+----+-----------+----+ > | | |CPU|HPTE| DUMP |ELF | > +-----------+----------/ /----------+---+----+-----------+----+ > | ^ > | | > \ / > ------------------------------------------- > Boot memory content gets transferred to > reserved area by firmware at the time of > crash > > This implicitly means that the sum of the sizes of boot memory, CPU > state data, HPTE region, DUMP preserving area and ELF core headers > can't be greater than the total memory size. But currently, a user is > allowed to specify any value as boot memory size. So, the above rule > is violated when a boot memory size around 50% of the total available > memory is specified. As the kernel is not handling this currently, it > may lead to undefined behavior. Fix it by setting an upper limit for > boot memory size to 25% of the total available memory. Also, instead > of using memblock_end_of_DRAM(), which doesn't take the holes, if any, > in the memory layout into account, use memblock_phys_mem_size() to > calculate the percentage of total available memory. > > Signed-off-by: Hari Bathini <hbath...@linux.vnet.ibm.com>
Applied to powerpc next, thanks. https://git.kernel.org/powerpc/c/48a316e350974739235c234430ec0e cheers