[RESEND, v2] powerpc/fadump: set an upper limit for boot memory size

Michael Ellerman patch-notifications at ellerman.id.au
Mon Jun 5 20:21:55 AEST 2017


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 <hbathini at linux.vnet.ibm.com>

Applied to powerpc next, thanks.

https://git.kernel.org/powerpc/c/48a316e350974739235c234430ec0e

cheers


More information about the Linuxppc-dev mailing list