* [PATCH] debug: allow to retain boot console via boot option keep_bootcon
@ 2011-01-10 8:58 Fabio M. Di Nitto
2011-01-10 22:11 ` [PATCH] debug: allow to retain boot console via boot option David Miller
` (3 more replies)
0 siblings, 4 replies; 6+ messages in thread
From: Fabio M. Di Nitto @ 2011-01-10 8:58 UTC (permalink / raw)
To: sparclinux
On some architectures, the boot process involves de-registering the boot
console (early boot), initialize drivers and then re-register the console.
This mechanism introduces a window in which no printk can happen on the console
and messages are buffered and then printed once the new console is available.
If a kernel crashes during this window, all it's left on the boot console
is "console [foo] enabled, bootconsole disabled" making debug of the crash
rather 'interesting'.
By adding "keep_bootcon" option, do not unregister the boot console, that
will allow to printk everything that is happening up to the crash.
The option is clearly meant only for debugging purposes as it introduces lots
of duplicated info printed on console, but will make bug report from users
easier as it doesn't require a kernel build just to figure out where we crash.
Signed-off-by: Fabio M. Di Nitto <fabbione@fabbione.net>
---
Documentation/kernel-parameters.txt | 6 ++++++
kernel/printk.c | 16 +++++++++++++++-
2 files changed, 21 insertions(+), 1 deletions(-)
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index f3dc951..56e8fd6 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -865,6 +865,12 @@ and is between 256 and 4096 characters. It is defined in the file
If specified, z/VM IUCV HVC accepts connections
from listed z/VM user IDs only.
+ keep_bootcon [KNL]
+ Do not unregister boot console at start. This is only
+ useful for debugging when something happens in the window
+ between unregistering the boot console and initializing
+ the real console.
+
i2c_bus= [HW] Override the default board specific I2C bus speed
or register an additional I2C bus that is not
registered from board initialization code.
diff --git a/kernel/printk.c b/kernel/printk.c
index 4642a5c..9be7ece 100644
--- a/kernel/printk.c
+++ b/kernel/printk.c
@@ -1215,6 +1215,18 @@ void console_start(struct console *console)
}
EXPORT_SYMBOL(console_start);
+static int __read_mostly keep_bootcon = 0;
+
+static int __init keep_bootcon_setup(char *str)
+{
+ keep_bootcon = 1;
+ printk(KERN_INFO "debug: skip boot console de-registration.\n");
+
+ return 0;
+}
+
+early_param("keep_bootcon", keep_bootcon_setup);
+
/*
* The console driver calls this routine during kernel initialization
* to register the console printing procedure with printk() and to
@@ -1362,7 +1374,9 @@ void register_console(struct console *newcon)
* users know there might be something in the kernel's log buffer that
* went to the bootconsole (that they do not see on the real console)
*/
- if (bcon && ((newcon->flags & (CON_CONSDEV | CON_BOOT)) = CON_CONSDEV)) {
+ if (bcon &&
+ ((newcon->flags & (CON_CONSDEV | CON_BOOT)) = CON_CONSDEV) &&
+ !keep_bootcon) {
/* we need to iterate through twice, to make sure we print
* everything out, before we unregister the console(s)
*/
--
1.7.3.4
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] debug: allow to retain boot console via boot option
2011-01-10 8:58 [PATCH] debug: allow to retain boot console via boot option keep_bootcon Fabio M. Di Nitto
@ 2011-01-10 22:11 ` David Miller
2011-01-11 5:24 ` [PATCH] debug: allow to retain boot console via boot option keep_bootcon Fabio M. Di NItto
` (2 subsequent siblings)
3 siblings, 0 replies; 6+ messages in thread
From: David Miller @ 2011-01-10 22:11 UTC (permalink / raw)
To: sparclinux
From: "Fabio M. Di Nitto" <fabbione@fabbione.net>
Date: Mon, 10 Jan 2011 09:58:03 +0100
> On some architectures, the boot process involves de-registering the boot
> console (early boot), initialize drivers and then re-register the console.
>
> This mechanism introduces a window in which no printk can happen on the console
> and messages are buffered and then printed once the new console is available.
>
> If a kernel crashes during this window, all it's left on the boot console
> is "console [foo] enabled, bootconsole disabled" making debug of the crash
> rather 'interesting'.
>
> By adding "keep_bootcon" option, do not unregister the boot console, that
> will allow to printk everything that is happening up to the crash.
>
> The option is clearly meant only for debugging purposes as it introduces lots
> of duplicated info printed on console, but will make bug report from users
> easier as it doesn't require a kernel build just to figure out where we crash.
>
> Signed-off-by: Fabio M. Di Nitto <fabbione@fabbione.net>
Acked-by: David S. Miller <davem@davemloft.net>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] debug: allow to retain boot console via boot option keep_bootcon
2011-01-10 8:58 [PATCH] debug: allow to retain boot console via boot option keep_bootcon Fabio M. Di Nitto
2011-01-10 22:11 ` [PATCH] debug: allow to retain boot console via boot option David Miller
@ 2011-01-11 5:24 ` Fabio M. Di NItto
2011-01-11 7:02 ` [PATCH] debug: allow to retain boot console via boot option David Miller
2011-01-11 8:05 ` [PATCH] debug: allow to retain boot console via boot option keep_bootcon Fabio M. Di Nitto
3 siblings, 0 replies; 6+ messages in thread
From: Fabio M. Di NItto @ 2011-01-11 5:24 UTC (permalink / raw)
To: sparclinux
On 01/10/2011 11:11 PM, David Miller wrote:
> From: "Fabio M. Di Nitto" <fabbione@fabbione.net>
> Date: Mon, 10 Jan 2011 09:58:03 +0100
>
>> On some architectures, the boot process involves de-registering the boot
>> console (early boot), initialize drivers and then re-register the console.
>>
>> This mechanism introduces a window in which no printk can happen on the console
>> and messages are buffered and then printed once the new console is available.
>>
>> If a kernel crashes during this window, all it's left on the boot console
>> is "console [foo] enabled, bootconsole disabled" making debug of the crash
>> rather 'interesting'.
>>
>> By adding "keep_bootcon" option, do not unregister the boot console, that
>> will allow to printk everything that is happening up to the crash.
>>
>> The option is clearly meant only for debugging purposes as it introduces lots
>> of duplicated info printed on console, but will make bug report from users
>> easier as it doesn't require a kernel build just to figure out where we crash.
>>
>> Signed-off-by: Fabio M. Di Nitto <fabbione@fabbione.net>
>
> Acked-by: David S. Miller <davem@davemloft.net>
Thanks! David, is it an option for you to push it around together with
other sparc fixes or should I just submit it to kernel list? Either ways
work for me.
Fabio
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] debug: allow to retain boot console via boot option
2011-01-10 8:58 [PATCH] debug: allow to retain boot console via boot option keep_bootcon Fabio M. Di Nitto
2011-01-10 22:11 ` [PATCH] debug: allow to retain boot console via boot option David Miller
2011-01-11 5:24 ` [PATCH] debug: allow to retain boot console via boot option keep_bootcon Fabio M. Di NItto
@ 2011-01-11 7:02 ` David Miller
2011-01-11 8:05 ` [PATCH] debug: allow to retain boot console via boot option keep_bootcon Fabio M. Di Nitto
3 siblings, 0 replies; 6+ messages in thread
From: David Miller @ 2011-01-11 7:02 UTC (permalink / raw)
To: sparclinux
From: "Fabio M. Di NItto" <fabbione@fabbione.net>
Date: Tue, 11 Jan 2011 06:24:48 +0100
> Thanks! David, is it an option for you to push it around together with
> other sparc fixes or should I just submit it to kernel list? Either ways
> work for me.
I think this needs to go via linux-kernel or similar.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] debug: allow to retain boot console via boot option keep_bootcon
2011-01-10 8:58 [PATCH] debug: allow to retain boot console via boot option keep_bootcon Fabio M. Di Nitto
` (2 preceding siblings ...)
2011-01-11 7:02 ` [PATCH] debug: allow to retain boot console via boot option David Miller
@ 2011-01-11 8:05 ` Fabio M. Di Nitto
3 siblings, 0 replies; 6+ messages in thread
From: Fabio M. Di Nitto @ 2011-01-11 8:05 UTC (permalink / raw)
To: sparclinux
On 1/11/2011 8:02 AM, David Miller wrote:
> From: "Fabio M. Di NItto" <fabbione@fabbione.net>
> Date: Tue, 11 Jan 2011 06:24:48 +0100
>
>> Thanks! David, is it an option for you to push it around together with
>> other sparc fixes or should I just submit it to kernel list? Either ways
>> work for me.
>
> I think this needs to go via linux-kernel or similar.
Yup, thanks.
Fabio
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH] debug: allow to retain boot console via boot option keep_bootcon
@ 2011-01-11 8:57 Fabio M. Di Nitto
0 siblings, 0 replies; 6+ messages in thread
From: Fabio M. Di Nitto @ 2011-01-11 8:57 UTC (permalink / raw)
To: linux-kernel; +Cc: Fabio M. Di Nitto
On some architectures, the boot process involves de-registering the boot
console (early boot), initialize drivers and then re-register the console.
This mechanism introduces a window in which no printk can happen on the console
and messages are buffered and then printed once the new console is available.
If a kernel crashes during this window, all it's left on the boot console
is "console [foo] enabled, bootconsole disabled" making debug of the crash
rather 'interesting'.
By adding "keep_bootcon" option, do not unregister the boot console, that
will allow to printk everything that is happening up to the crash.
The option is clearly meant only for debugging purposes as it introduces lots
of duplicated info printed on console, but will make bug report from users
easier as it doesn't require a kernel build just to figure out where we crash.
Signed-off-by: Fabio M. Di Nitto <fabbione@fabbione.net>
Acked-by: David S. Miller <davem@davemloft.net>
---
Documentation/kernel-parameters.txt | 6 ++++++
kernel/printk.c | 16 +++++++++++++++-
2 files changed, 21 insertions(+), 1 deletions(-)
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index f3dc951..56e8fd6 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -865,6 +865,12 @@ and is between 256 and 4096 characters. It is defined in the file
If specified, z/VM IUCV HVC accepts connections
from listed z/VM user IDs only.
+ keep_bootcon [KNL]
+ Do not unregister boot console at start. This is only
+ useful for debugging when something happens in the window
+ between unregistering the boot console and initializing
+ the real console.
+
i2c_bus= [HW] Override the default board specific I2C bus speed
or register an additional I2C bus that is not
registered from board initialization code.
diff --git a/kernel/printk.c b/kernel/printk.c
index f64b899..9264f37 100644
--- a/kernel/printk.c
+++ b/kernel/printk.c
@@ -1221,6 +1221,18 @@ void console_start(struct console *console)
}
EXPORT_SYMBOL(console_start);
+static int __read_mostly keep_bootcon = 0;
+
+static int __init keep_bootcon_setup(char *str)
+{
+ keep_bootcon = 1;
+ printk(KERN_INFO "debug: skip boot console de-registration.\n");
+
+ return 0;
+}
+
+early_param("keep_bootcon", keep_bootcon_setup);
+
/*
* The console driver calls this routine during kernel initialization
* to register the console printing procedure with printk() and to
@@ -1368,7 +1380,9 @@ void register_console(struct console *newcon)
* users know there might be something in the kernel's log buffer that
* went to the bootconsole (that they do not see on the real console)
*/
- if (bcon && ((newcon->flags & (CON_CONSDEV | CON_BOOT)) == CON_CONSDEV)) {
+ if (bcon &&
+ ((newcon->flags & (CON_CONSDEV | CON_BOOT)) == CON_CONSDEV) &&
+ !keep_bootcon) {
/* we need to iterate through twice, to make sure we print
* everything out, before we unregister the console(s)
*/
--
1.7.3.4
^ permalink raw reply related [flat|nested] 6+ messages in thread
end of thread, other threads:[~2011-01-11 8:57 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-01-10 8:58 [PATCH] debug: allow to retain boot console via boot option keep_bootcon Fabio M. Di Nitto
2011-01-10 22:11 ` [PATCH] debug: allow to retain boot console via boot option David Miller
2011-01-11 5:24 ` [PATCH] debug: allow to retain boot console via boot option keep_bootcon Fabio M. Di NItto
2011-01-11 7:02 ` [PATCH] debug: allow to retain boot console via boot option David Miller
2011-01-11 8:05 ` [PATCH] debug: allow to retain boot console via boot option keep_bootcon Fabio M. Di Nitto
-- strict thread matches above, loose matches on Subject: below --
2011-01-11 8:57 Fabio M. Di Nitto
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.