Blame SOURCES/kexec-tools-2.0.14-x86-Support-large-number-of-memory-ranges.patch

766e0d
From 4a6d67d9e938a7accf128aff23f8ad4bda67f729 Mon Sep 17 00:00:00 2001
766e0d
From: Xunlei Pang <xlpang@redhat.com>
766e0d
Date: Thu, 23 Mar 2017 19:16:59 +0800
766e0d
Subject: [PATCH] x86: Support large number of memory ranges
766e0d
766e0d
We got a problem on one SGI 64TB machine, the current kexec-tools
766e0d
failed to work due to the insufficient ranges(MAX_MEMORY_RANGES)
766e0d
allowed which is defined as 1024(less than the ranges on the machine).
766e0d
The kcore header is insufficient due to the same reason as well.
766e0d
766e0d
To solve this, this patch simply doubles "MAX_MEMORY_RANGES" and
766e0d
"KCORE_ELF_HEADERS_SIZE".
766e0d
766e0d
Signed-off-by: Xunlei Pang <xlpang@redhat.com>
766e0d
Tested-by: Frank Ramsay <frank.ramsay@hpe.com>
766e0d
Signed-off-by: Simon Horman <horms@verge.net.au>
766e0d
---
766e0d
 kexec/arch/i386/kexec-x86.h | 2 +-
766e0d
 kexec/crashdump.h           | 4 ++--
766e0d
 2 files changed, 3 insertions(+), 3 deletions(-)
766e0d
766e0d
diff --git a/kexec/arch/i386/kexec-x86.h b/kexec/arch/i386/kexec-x86.h
766e0d
index 33df352..51855f8 100644
766e0d
--- a/kexec/arch/i386/kexec-x86.h
766e0d
+++ b/kexec/arch/i386/kexec-x86.h
766e0d
@@ -1,7 +1,7 @@
766e0d
 #ifndef KEXEC_X86_H
766e0d
 #define KEXEC_X86_H
766e0d
 
766e0d
-#define MAX_MEMORY_RANGES 1024
766e0d
+#define MAX_MEMORY_RANGES 2048
766e0d
 
766e0d
 enum coretype {
766e0d
 	CORE_TYPE_UNDEF = 0,
766e0d
diff --git a/kexec/crashdump.h b/kexec/crashdump.h
766e0d
index 86e1ef2..18bd691 100644
766e0d
--- a/kexec/crashdump.h
766e0d
+++ b/kexec/crashdump.h
766e0d
@@ -7,8 +7,8 @@ extern int get_xen_vmcoreinfo(uint64_t *addr, uint64_t *len);
766e0d
 
766e0d
 /* Need to find a better way to determine per cpu notes section size. */
766e0d
 #define MAX_NOTE_BYTES		1024
766e0d
-/* Expecting ELF headers to fit in 32K. Increase it if you need more. */
766e0d
-#define KCORE_ELF_HEADERS_SIZE  32768
766e0d
+/* Expecting ELF headers to fit in 64K. Increase it if you need more. */
766e0d
+#define KCORE_ELF_HEADERS_SIZE  65536
766e0d
 /* The address of the ELF header is passed to the secondary kernel
766e0d
  * using the kernel command line option memmap=nnn.
766e0d
  * The smallest unit the kernel accepts is in kilobytes,
766e0d
-- 
766e0d
1.8.3.1
766e0d