Skip to contentSkip to conversation

Config option to disable info from decompression of the kernel

PATCH Applied Ben Collins 2 participants 3 messages Jun 18, 2008 – Jul 3, 2008 x86

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Config option to disable info from decompression of the kernel

I submitted a similar patch some time ago, but rightfully it didn't get accepted, as it just disabled all output from the decompress stage (without a boot time option to enable it).

This patch just disables the information output from this stage, but not the error output.

arch/x86/Kconfig.debug +8 -0
index 1836337..94c818f 100644
@@ -20,6 +20,14 @@ config NONPROMISC_DEVMEM
 
 	  If in doubt, say Y.
 
+config NO_BZ_CHATTER
+	bool "Disable decompress info messages"
+	default n
+	help
+	  Disables just the informational output from the decompression stage
+	  (e.g. bzImage) of the boot. You will still see errors. Do this if you
+	  want to cleanup the bootup process.
+
 config EARLY_PRINTK
 	bool "Early printk" if EMBEDDED
 	default y
arch/x86/boot/compressed/misc.c +11 -5
index 90456ce..67cf205 100644
@@ -206,7 +206,8 @@ static void free(void *where);
 static void *memset(void *s, int c, unsigned n);
 static void *memcpy(void *dest, const void *src, unsigned n);
 
-static void putstr(const char *);
+static void __putstr(int, const char *);
+#define putstr(__x)  __putstr(0, __x)
 
 #ifdef CONFIG_X86_64
 #define memptr long
@@ -270,11 +271,16 @@ static void scroll(void)
 		vidmem[i] = ' ';
 }
 
-static void putstr(const char *s)
+static void __putstr(int error, const char *s)
 {
 	int x, y, pos;
 	char c;
 
+#ifdef CONFIG_NO_BZ_CHATTER
+	if (!error)
+		return;
+#endif
+
 #ifdef CONFIG_X86_32
 	if (RM_SCREEN_INFO.orig_video_mode == 0 && lines == 0 && cols == 0)
 		return;
@@ -366,9 +372,9 @@ static void flush_window(void)
 
 static void error(char *x)
 {
-	putstr("\n\n");
-	putstr(x);
-	putstr("\n\n -- System halted");
+	__putstr(1, "\n\n");
+	__putstr(1, x);
+	__putstr(1, "\n\n -- System halted");
 
 	while (1)
 		asm("hlt");
Applied
#1 lore raw
Quoted 7 lines · Ben Collins

I submitted a similar patch some time ago, but rightfully it didn't get accepted, as it just disabled all output from the decompress stage (without a boot time option to enable it).

This patch just disables the information output from this stage, but not the error output.

Review

Quoted 7 lines
(quoted diff) +7 -0
+config NO_BZ_CHATTER
+	bool "Disable decompress info messages"
+	default n
+	help
+	  Disables just the informational output from the decompression stage
+	  (e.g. bzImage) of the boot. You will still see errors. Do this if you
+	  want to cleanup the bootup process.

applied to tip/x86/setup - thanks Ben.

Note that i've flipped around the name (i.e. got rid of the 'NO_'), and i renamed it to the bit more generic X86_VERBOSE_BOOTUP config variable. We might want to make other output dependent on that flag, not just the decompressor messages. Find the commit below. (please double-check it)

Ingo

----------------------->
commit 6bcb13b35a2ea39be6c7cc0292b8ad1191b1a748

Author: Ben Collins <[email protected]>
Date:   Wed Jun 18 14:04:35 2008 -0400

x86: config option to disable info from decompression of the kernel

This patch allows the disabling of decompression messages during x86 bootup.

arch/x86/Kconfig.debug +8 -0
index ac1e31b..14abaa5 100644
@@ -16,6 +16,14 @@ config NONPROMISC_DEVMEM
 	  obviously disasterous, but specific access can be used by people
 	  debugging the kernel.
 
+config X86_VERBOSE_BOOTUP
+	bool "Enable verbose x86 bootup info messages"
+	default y
+	help
+	  Enables the informational output from the decompression stage
+	  (e.g. bzImage) of the boot. If you disable this you will still
+	  see errors. Disable this if you want silent bootup.
+
 config EARLY_PRINTK
 	bool "Early printk" if EMBEDDED
 	default y
arch/x86/boot/compressed/misc.c +11 -5
index d10e727..11629e9 100644
@@ -202,7 +202,8 @@ static void free(void *where);
 static void *memset(void *s, int c, unsigned n);
 static void *memcpy(void *dest, const void *src, unsigned n);
 
-static void putstr(const char *);
+static void __putstr(int, const char *);
+#define putstr(__x)  __putstr(0, __x)
 
 #ifdef CONFIG_X86_64
 #define memptr long
@@ -266,11 +267,16 @@ static void scroll(void)
 		vidmem[i] = ' ';
 }
 
-static void putstr(const char *s)
+static void __putstr(int error, const char *s)
 {
 	int x, y, pos;
 	char c;
 
+#ifndef CONFIG_X86_VERBOSE_BOOTUP
+	if (!error)
+		return;
+#endif
+
 #ifdef CONFIG_X86_32
 	if (real_mode->screen_info.orig_video_mode == 0 &&
 	    lines == 0 && cols == 0)
@@ -363,9 +369,9 @@ static void flush_window(void)
 
 static void error(char *x)
 {
-	putstr("\n\n");
-	putstr(x);
-	putstr("\n\n -- System halted");
+	__putstr(1, "\n\n");
+	__putstr(1, x);
+	__putstr(1, "\n\n -- System halted");
 
 	while (1)
 		asm("hlt");
#2 lore raw
Quoted 19 lines · Ingo Molnar
Quoted 7 lines · Ben Collins

I submitted a similar patch some time ago, but rightfully it didn't get accepted, as it just disabled all output from the decompress stage (without a boot time option to enable it).

This patch just disables the information output from this stage, but not the error output.

Review

Quoted 7 lines
(quoted diff) +7 -0
+config NO_BZ_CHATTER
+	bool "Disable decompress info messages"
+	default n
+	help
+	  Disables just the informational output from the decompression stage
+	  (e.g. bzImage) of the boot. You will still see errors. Do this if you
+	  want to cleanup the bootup process.

applied to tip/x86/setup - thanks Ben.

Quoted 4 lines

Note that i've flipped around the name (i.e. got rid of the 'NO_'), and i renamed it to the bit more generic X86_VERBOSE_BOOTUP config variable. We might want to make other output dependent on that flag, not just the decompressor messages. Find the commit below. (please double-check it)

Looks good, thanks.

Quoted 79 lines

Ingo

----------------------->
commit 6bcb13b35a2ea39be6c7cc0292b8ad1191b1a748

Author: Ben Collins <[email protected]>
Date:   Wed Jun 18 14:04:35 2008 -0400

x86: config option to disable info from decompression of the kernel

This patch allows the disabling of decompression messages during x86 bootup.

arch/x86/Kconfig.debug +8 -0
index ac1e31b..14abaa5 100644
@@ -16,6 +16,14 @@ config NONPROMISC_DEVMEM
 	  obviously disasterous, but specific access can be used by people
 	  debugging the kernel.
 
+config X86_VERBOSE_BOOTUP
+	bool "Enable verbose x86 bootup info messages"
+	default y
+	help
+	  Enables the informational output from the decompression stage
+	  (e.g. bzImage) of the boot. If you disable this you will still
+	  see errors. Disable this if you want silent bootup.
+
 config EARLY_PRINTK
 	bool "Early printk" if EMBEDDED
 	default y
arch/x86/boot/compressed/misc.c +11 -5
index d10e727..11629e9 100644
@@ -202,7 +202,8 @@ static void free(void *where);
 static void *memset(void *s, int c, unsigned n);
 static void *memcpy(void *dest, const void *src, unsigned n);
 
-static void putstr(const char *);
+static void __putstr(int, const char *);
+#define putstr(__x)  __putstr(0, __x)
 
 #ifdef CONFIG_X86_64
 #define memptr long
@@ -266,11 +267,16 @@ static void scroll(void)
 		vidmem[i] = ' ';
 }
 
-static void putstr(const char *s)
+static void __putstr(int error, const char *s)
 {
 	int x, y, pos;
 	char c;
 
+#ifndef CONFIG_X86_VERBOSE_BOOTUP
+	if (!error)
+		return;
+#endif
+
 #ifdef CONFIG_X86_32
 	if (real_mode->screen_info.orig_video_mode == 0 &&
 	    lines == 0 && cols == 0)
@@ -363,9 +369,9 @@ static void flush_window(void)
 
 static void error(char *x)
 {
-	putstr("\n\n");
-	putstr(x);
-	putstr("\n\n -- System halted");
+	__putstr(1, "\n\n");
+	__putstr(1, x);
+	__putstr(1, "\n\n -- System halted");
 
 	while (1)
 		asm("hlt");