[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1271953392-6324-1-git-send-email-v.mayatskih@gmail.com>
Date: Thu, 22 Apr 2010 18:23:07 +0200
From: Vitaly Mayatskikh <v.mayatskih@...il.com>
To: linux-kernel@...r.kernel.org
Cc: Thomas Gleixner <tglx@...utronix.de>,
Ingo Molnar <mingo@...hat.com>,
"H. Peter Anvin" <hpa@...or.com>, Vivek Goyal <vgoyal@...hat.com>,
Haren Myneni <hbabu@...ibm.com>,
Eric Biederman <ebiederm@...ssion.com>,
Neil Horman <nhorman@...driver.com>,
Cong Wang <amwang@...hat.com>, kexec@...ts.infradead.org
Subject: [PATCH 0/5] Add second memory region for crash kernel
Patch applies to 2.6.34-rc5
On x86 platform, even if hardware is 64-bit capable, kernel starts
execution in 32-bit mode. When system is kdump-enabled, crashed kernel
switches to 32 bit mode and jumps into new kernel. This automatically
limits location of dump-capture kernel image and it's initrd by first
4Gb of memory. Switching to 32 bit mode is performed by purgatory
code, which has relocations of type R_X86_64_32S (32-bit signed), and
this cuts "good" address space for crash kernel down to 2 Gb. I/O
regions may cut down this space further.
When system has a lot of memory (hundreds of gigabytes), dump-capture
kernel also needs relatively a lot of memory to account old kernel's
pages. It may be impossible to reserve enough memory below 2 or even 4
Gb. Simplest solution is it break dump-capture kernel's reserved
memory region into two pieces: first (small) region for kernel and
initrd images may be easily placed in "good" address space in the
beginning of physical memory, and second region may be located
anywhere.
This serie of patches realizes this approach. It requires also changes
in kexec utility to make this feature work, but is
backward-compatible: old versions of kexec will work with new
kernel. I will post patch to kexec-tools upstream separately.
Signed-off-by: Vitaly Mayatskikh <v.mayatskih@...il.com>
Documentation/kdump/kdump.txt | 40 ++++++++
Documentation/kernel-parameters.txt | 19 +++-
arch/x86/kernel/setup.c | 56 +++++++----
include/linux/kexec.h | 6 +
kernel/kexec.c | 182 ++++++++++++++++++++++++++---------
5 files changed, 232 insertions(+), 71 deletions(-)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists