Commit-ID: 2cde8ae169982ad1d1023ac628bb54053d0e9d4d
Gitweb: http://git.kernel.org/tip/2cde8ae169982ad1d1023ac628bb54053d0e9d4d
Author: Yinghai Lu <yinghai@xxxxxxxxxx>
AuthorDate: Thu, 24 Jan 2013 12:20:11 -0800
Committer: H. Peter Anvin <hpa@xxxxxxxxxxxxxxx>
CommitDate: Tue, 29 Jan 2013 15:31:59 -0800
x86: Add Crash kernel low reservation
During kdump kernel's booting stage, it need to find low ram for
swiotlb buffer when system does not support intel iommu/dmar remapping.
kexed-tools is appending memmap=exactmap and range from /proc/iomem
with "Crash kernel", and that range is above 4G for 64bit after boot
protocol 2.12.
We need to add another range in /proc/iomem like "Crash kernel low",
so kexec-tools could find that info and append to kdump kernel
command line.
User could specify the size with crashkernel_low=XX[KMG].
-v2: fix warning that is found by Fengguang's test robot.
-v3: move out get_mem_size change to another patch, to solve compiling
warning that is found by Borislav Petkov <bp@xxxxxxxxx>
-v4: user must specify crashkernel_low if system does not support
intel or amd iommu.
Signed-off-by: Yinghai Lu <yinghai@xxxxxxxxxx>
Link: http://lkml.kernel.org/r/1359058816-7615-31-git-send-email-yinghai@xxxxxxxxxx
Cc: Eric Biederman <ebiederm@xxxxxxxxxxxx>
Cc: Rob Landley <rob@xxxxxxxxxxx>
Signed-off-by: H. Peter Anvin <hpa@xxxxxxxxxxxxxxx>
---
Documentation/kernel-parameters.txt | 3 +++
arch/x86/kernel/setup.c | 42 +++++++++++++++++++++++++++++++++++--
include/linux/kexec.h | 3 +++
kernel/kexec.c | 34 +++++++++++++++++++++++++-----
4 files changed, 75 insertions(+), 7 deletions(-)
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index 363e348..da0e077 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -594,6 +594,9 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
is selected automatically. Check
Documentation/kdump/kdump.txt for further details.
+ crashkernel_low=size[KMG]
+ [KNL, x86] parts under 4G.
+
crashkernel=range1:size1[,range2:size2,...][@offset]
[KNL] Same as above, but depends on the memory
in the running system. The syntax of range is
Try to reserve some under 4G if the normal "Crash kernel" is above 4G.