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