• B
    x86/setup: Do not reserve crashkernel high memory if low reservation failed · eb6db83d
    Baoquan He 提交于
    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: NJoerg Roedel <jroedel@suse.de>
    Signed-off-by: NBaoquan He <bhe@redhat.com>
    [ Massage text. ]
    Signed-off-by: NBorislav Petkov <bp@suse.de>
    Reviewed-by: NJoerg 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: NIngo Molnar <mingo@kernel.org>
    eb6db83d
setup.c 30.8 KB