[PATCH] kexec x86: drop truncation warning for crash kernel

Cliff Wickman cpw at sgi.com
Mon Feb 25 13:00:07 EST 2013


From: Cliff Wickman <cpw at sgi.com>

On kexec set-up of a crash kernel on a very large memory machine we
sometimes see the worrisome warning:
  Too many memory ranges, truncating...
meaning that the total count of e820 ram, reserved and ACPI spaces is over 128.

Per the comment in do_bzImage_load():
                /* If using bzImage for capture kernel, then we will not be
                 * executing real mode code. setup segment can be loaded
                 * anywhere as we will be just reading command line.
                 */
So if I understand, the e820 table built here and added to the 'real_mode'
area is not going to be used.
So the warning message can be omitted.

Signed-off-by: Cliff Wickman <cpw at sgi.com>
---
 kexec/arch/i386/x86-linux-setup.c |    9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

Index: kexec-tools-2.0.4-rc1/kexec/arch/i386/x86-linux-setup.c
===================================================================
--- kexec-tools-2.0.4-rc1.orig/kexec/arch/i386/x86-linux-setup.c
+++ kexec-tools-2.0.4-rc1/kexec/arch/i386/x86-linux-setup.c
@@ -34,6 +34,7 @@
 #include "../../kexec.h"
 #include "kexec-x86.h"
 #include "x86-linux-setup.h"
+#include "../../kexec/kexec-syscall.h"
 
 void init_linux_parameters(struct x86_linux_param_header *real_mode)
 {
@@ -491,7 +492,13 @@ void setup_linux_system_parameters(struc
 		die("Cannot get memory information\n");
 	}
 	if (ranges > E820MAX) {
-		fprintf(stderr, "Too many memory ranges, truncating...\n");
+		if (!(kexec_flags & KEXEC_ON_CRASH))
+			/*
+			 * this e820 not used for capture kernel, see
+			 * do_bzImage_load()
+			 */
+			fprintf(stderr,
+				"Too many memory ranges, truncating...\n");
 		ranges = E820MAX;
 	}
 	real_mode->e820_map_nr = ranges;



More information about the kexec mailing list