Hari Bathini <hbath...@linux.vnet.ibm.com> writes:

> Currently, the area to preserve boot memory is reserved at the top of
> RAM. This leaves fadump vulnerable to DLPAR memory remove operations.
> As memory for fadump needs to be reserved early in the boot process,
> fadump can't be registered after a DLPAR memory remove operation.
> While this problem can't be eleminated completely, the impact can be
> minimized by reserving memory at the halfway mark instead. With this
> change, fadump can register successfully after a DLPAR memory remove
> operation as long as the sum of the sizes of boot memory and memory
> removed is less than half of the total available memory.
>
> Signed-off-by: Hari Bathini <hbath...@linux.vnet.ibm.com>
> ---
>  arch/powerpc/kernel/fadump.c |    8 ++++++--
>  1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/arch/powerpc/kernel/fadump.c b/arch/powerpc/kernel/fadump.c
> index 8ff0dd4..9c85c5a 100644
> --- a/arch/powerpc/kernel/fadump.c
> +++ b/arch/powerpc/kernel/fadump.c
> @@ -319,9 +319,13 @@ int __init fadump_reserve_mem(void)
>               pr_debug("fadumphdr_addr = %p\n",
>                               (void *) fw_dump.fadumphdr_addr);
>       } else {
> -             /* Reserve the memory at the top of memory. */
> +             /*
> +              * Reserve memory at the halfway mark to minimize
> +              * the impact of DLPAR memory remove operation.
> +              */
> +             base = PAGE_ALIGN(memory_boundary/2);

This doesn't account for holes, do we never have holes in the memory
layout on phyp?

cheers

Reply via email to