• Baoquan He's avatar
    x86/setup: Do not reserve crashkernel high memory if low reservation failed · eb6db83d
    Baoquan He authored
    People reported that when allocating crashkernel memory using
    the ",high" and ",low" syntax, there were cases where the
    reservation of the high portion succeeds but the reservation of
    the low portion fails.
    
    Then kexec can load the kdump kernel successfully, but booting
    the kdump kernel fails as there's no low memory.
    
    The low memory allocation for the kdump kernel can fail on large
    systems for a couple of reasons. For example, the manually
    specified crashkernel low memory can be too large and thus no
    adequate memblock region would be found.
    
    Therefore, we try to reserve low memory for the crash kernel
    *after* the high memory portion has been allocated. If that
    fails, we free crashkernel high memory too and return. The user
    can then take measures accordingly.
    Tested-by: default avatarJoerg Roedel <jroedel@suse.de>
    Signed-off-by: default avatarBaoquan He <bhe@redhat.com>
    [ Massage text. ]
    Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
    Reviewed-by: default avatarJoerg Roedel <jroedel@suse.de>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Andy Lutomirski <luto@amacapital.net>
    Cc: Dave Young <dyoung@redhat.com>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Jiri Kosina <jkosina@suse.cz>
    Cc: Juergen Gross <jgross@suse.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Mark Salter <msalter@redhat.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: WANG Chao <chaowang@redhat.com>
    Cc: jerry_hoemann@hp.com
    Cc: yinghai@kernel.org
    Link: http://lkml.kernel.org/r/1445246268-26285-2-git-send-email-bp@alien8.deSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
    eb6db83d
setup.c 30.8 KB