summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIngo Molnar2006-12-07 05:40:51 +0100
committerLinus Torvalds2006-12-07 17:39:47 +0100
commit792908225064b1d841a8990b9d1d1cfc4e0e5bb2 (patch)
tree3892ec82447727cf59b3cf5d37273b76d01b763c
parent[PATCH] lockdep: register_lock_class() fix (diff)
downloadkernel-qcow2-linux-792908225064b1d841a8990b9d1d1cfc4e0e5bb2.tar.gz
kernel-qcow2-linux-792908225064b1d841a8990b9d1d1cfc4e0e5bb2.tar.xz
kernel-qcow2-linux-792908225064b1d841a8990b9d1d1cfc4e0e5bb2.zip
[PATCH] add ignore_loglevel boot option
Sometimes the kernel prints something interesting while userspace bootup keeps messages turned off via loglevel. Enable the printing of /all/ kernel messages via the "ignore_loglevel" boot option. Off by default. Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r--Documentation/kernel-parameters.txt4
-rw-r--r--kernel/printk.c14
2 files changed, 17 insertions, 1 deletions
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index 2a40d9f6ffad..6b3c3e37a277 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -650,6 +650,10 @@ and is between 256 and 4096 characters. It is defined in the file
idle= [HW]
Format: idle=poll or idle=halt
+ ignore_loglevel [KNL]
+ Ignore loglevel setting - this will print /all/
+ kernel messages to the console. Useful for debugging.
+
ihash_entries= [KNL]
Set number of hash buckets for inode cache.
diff --git a/kernel/printk.c b/kernel/printk.c
index c3d90a58e4c5..185bb45eacf7 100644
--- a/kernel/printk.c
+++ b/kernel/printk.c
@@ -333,13 +333,25 @@ static void __call_console_drivers(unsigned long start, unsigned long end)
}
}
+static int __read_mostly ignore_loglevel;
+
+int __init ignore_loglevel_setup(char *str)
+{
+ ignore_loglevel = 1;
+ printk(KERN_INFO "debug: ignoring loglevel setting.\n");
+
+ return 1;
+}
+
+__setup("ignore_loglevel", ignore_loglevel_setup);
+
/*
* Write out chars from start to end - 1 inclusive
*/
static void _call_console_drivers(unsigned long start,
unsigned long end, int msg_log_level)
{
- if (msg_log_level < console_loglevel &&
+ if ((msg_log_level < console_loglevel || ignore_loglevel) &&
console_drivers && start != end) {
if ((start & LOG_BUF_MASK) > (end & LOG_BUF_MASK)) {
/* wrapped write */