* [PATCH 1/2] panic: panic=-1 for immediate reboot
@ 2011-07-15 22:39 Mandeep Singh Baines
2011-07-15 22:40 ` [PATCH 2/2] panic, vt: do not force oops output when panic_timeout < 0 Mandeep Singh Baines
2011-07-15 22:56 ` [PATCH 1/2] panic: panic=-1 for immediate reboot Mandeep Singh Baines
0 siblings, 2 replies; 5+ messages in thread
From: Mandeep Singh Baines @ 2011-07-15 22:39 UTC (permalink / raw)
To: linux-kernel
Cc: Hugh Dickins, Mandeep Singh Baines, Andrew Morton, Huang Ying,
Andi Kleen, Hugh Dickins, Olaf Hering, Jesse Barnes, Dave Airlie,
Greg Kroah-Hartman, Alan Cox
From: Hugh Dickins <hughd@chromium.org>
When kernel BUG or oops occurs, ChromeOS intends to panic and immediately
reboot, with stacktrace and other messages preserved in RAM across reboot.
But the longer we delay, the more likely the user is to poweroff and lose
the info.
panic_timeout (seconds before rebooting) is set by panic= boot option
or sysctl or /proc/sys/kernel/panic; but 0 means wait forever, so at
present we have to delay at least 1 second.
Let a negative number mean reboot immediately (with the small cosmetic
benefit of suppressing that newline-less "Rebooting in %d seconds.."
message).
Signed-off-by: Hugh Dickins <hughd@chromium.org>
Signed-off-by: Mandeep Singh Baines <msb@chromium.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Huang Ying <ying.huang@intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Hugh Dickins <hughd@google.com>
Cc: Olaf Hering <olaf@aepfle.de>
Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
Cc: Dave Airlie <airlied@gmail.com>
Cc: Greg Kroah-Hartman <gregkh@suse.de>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
---
kernel/panic.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/kernel/panic.c b/kernel/panic.c
index 6923167..d7bb697 100644
--- a/kernel/panic.c
+++ b/kernel/panic.c
@@ -119,6 +119,8 @@ NORET_TYPE void panic(const char * fmt, ...)
}
mdelay(PANIC_TIMER_STEP);
}
+ }
+ if (panic_timeout != 0) {
/*
* This will not be a clean reboot, with everything
* shutting down. But if there is a chance of
--
1.7.3.1
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 2/2] panic, vt: do not force oops output when panic_timeout < 0
2011-07-15 22:39 [PATCH 1/2] panic: panic=-1 for immediate reboot Mandeep Singh Baines
@ 2011-07-15 22:40 ` Mandeep Singh Baines
2011-07-15 22:56 ` [PATCH 1/2] panic: panic=-1 for immediate reboot Mandeep Singh Baines
1 sibling, 0 replies; 5+ messages in thread
From: Mandeep Singh Baines @ 2011-07-15 22:40 UTC (permalink / raw)
To: linux-kernel
Cc: Mandeep Singh Baines, Andrew Morton, Huang Ying, Andi Kleen,
Hugh Dickins, Olaf Hering, Jesse Barnes, Dave Airlie,
Greg Kroah-Hartman, Alan Cox
Don't force output if you intend to reboot immediately.
In this patch, I'm disabling the functionality enabled by
vc->vc_panic_force_write if panic_timeout < 0 (i.e. no timeout).
vc_panic_force_write is only enabled for fb video consoles if the
FBINFO_CAN_FORCE_OUTPUT flag is set.
For our application, we're using ram_oops to preserved the panic in memory.
We want to reliably, and as fast as possible, machine_restart. The
vc_panic_force_write flag results in a bunch of graphics driver code to be
invoked which slows down restart and decreases reliability. Since we're
already storing the panic in RAM and are going to reboot immediately, there
is no benefit in mode switching back to the vc in order to display the panic
output. The log buffer will get flushed by the console_unblank() call so
remote management consoles should see all output.
Signed-off-by: Mandeep Singh Baines <msb@chromium.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Huang Ying <ying.huang@intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Hugh Dickins <hughd@google.com>
Cc: Olaf Hering <olaf@aepfle.de>
Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
Cc: Dave Airlie <airlied@gmail.com>
Cc: Greg Kroah-Hartman <gregkh@suse.de>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
---
include/linux/vt_kern.h | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/include/linux/vt_kern.h b/include/linux/vt_kern.h
index 4d05e14..c2164fa 100644
--- a/include/linux/vt_kern.h
+++ b/include/linux/vt_kern.h
@@ -137,7 +137,7 @@ int vty_init(const struct file_operations *console_fops);
static inline bool vt_force_oops_output(struct vc_data *vc)
{
- if (oops_in_progress && vc->vc_panic_force_write)
+ if (oops_in_progress && vc->vc_panic_force_write && panic_timeout >= 0)
return true;
return false;
}
--
1.7.3.1
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1/2] panic: panic=-1 for immediate reboot
2011-07-15 22:39 [PATCH 1/2] panic: panic=-1 for immediate reboot Mandeep Singh Baines
2011-07-15 22:40 ` [PATCH 2/2] panic, vt: do not force oops output when panic_timeout < 0 Mandeep Singh Baines
@ 2011-07-15 22:56 ` Mandeep Singh Baines
1 sibling, 0 replies; 5+ messages in thread
From: Mandeep Singh Baines @ 2011-07-15 22:56 UTC (permalink / raw)
To: linux-kernel
Cc: Hugh Dickins, Mandeep Singh Baines, Andrew Morton, Huang Ying,
Andi Kleen, Hugh Dickins, Olaf Hering, Jesse Barnes, Dave Airlie,
Greg Kroah-Hartman, Alan Cox
On Fri, Jul 15, 2011 at 3:39 PM, Mandeep Singh Baines <msb@chromium.org> wrote:
> From: Hugh Dickins <hughd@chromium.org>
>
> When kernel BUG or oops occurs, ChromeOS intends to panic and immediately
> reboot, with stacktrace and other messages preserved in RAM across reboot.
> But the longer we delay, the more likely the user is to poweroff and lose
> the info.
>
> panic_timeout (seconds before rebooting) is set by panic= boot option
> or sysctl or /proc/sys/kernel/panic; but 0 means wait forever, so at
> present we have to delay at least 1 second.
>
> Let a negative number mean reboot immediately (with the small cosmetic
> benefit of suppressing that newline-less "Rebooting in %d seconds.."
> message).
>
Ignore this patch. I re-posted the series with documentation updates:
http://lkml.kernel.org/r/1310770401-10739-1-git-send-email-msb@chromium.org
> Signed-off-by: Hugh Dickins <hughd@chromium.org>
> Signed-off-by: Mandeep Singh Baines <msb@chromium.org>
> Cc: Andrew Morton <akpm@linux-foundation.org>
> Cc: Huang Ying <ying.huang@intel.com>
> Cc: Andi Kleen <ak@linux.intel.com>
> Cc: Hugh Dickins <hughd@google.com>
> Cc: Olaf Hering <olaf@aepfle.de>
> Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
> Cc: Dave Airlie <airlied@gmail.com>
> Cc: Greg Kroah-Hartman <gregkh@suse.de>
> Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
> ---
> kernel/panic.c | 2 ++
> 1 files changed, 2 insertions(+), 0 deletions(-)
>
> diff --git a/kernel/panic.c b/kernel/panic.c
> index 6923167..d7bb697 100644
> --- a/kernel/panic.c
> +++ b/kernel/panic.c
> @@ -119,6 +119,8 @@ NORET_TYPE void panic(const char * fmt, ...)
> }
> mdelay(PANIC_TIMER_STEP);
> }
> + }
> + if (panic_timeout != 0) {
> /*
> * This will not be a clean reboot, with everything
> * shutting down. But if there is a chance of
> --
> 1.7.3.1
>
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] panic, vt: do not force oops output when panic_timeout < 0
2011-07-15 22:53 ` [PATCH 2/2] panic, vt: do not force oops output when panic_timeout < 0 Mandeep Singh Baines
@ 2011-07-15 23:15 ` Alan Cox
0 siblings, 0 replies; 5+ messages in thread
From: Alan Cox @ 2011-07-15 23:15 UTC (permalink / raw)
To: Mandeep Singh Baines
Cc: linux-kernel, Andrew Morton, Huang Ying, Andi Kleen,
Hugh Dickins, Olaf Hering, Jesse Barnes, Dave Airlie,
Greg Kroah-Hartman
> already storing the panic in RAM and are going to reboot immediately, there
> is no benefit in mode switching back to the vc in order to display the panic
> output. The log buffer will get flushed by the console_unblank() call so
> remote management consoles should see all output.
Doesn't seem too unreasonable and its probably a behaviour (although with
netconsole) that a lot of server farms would prefer too.
Acked-by: Alan Cox <alan@linux.intel.com>
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 2/2] panic, vt: do not force oops output when panic_timeout < 0
2011-07-15 22:53 Mandeep Singh Baines
@ 2011-07-15 22:53 ` Mandeep Singh Baines
2011-07-15 23:15 ` Alan Cox
0 siblings, 1 reply; 5+ messages in thread
From: Mandeep Singh Baines @ 2011-07-15 22:53 UTC (permalink / raw)
To: linux-kernel
Cc: Mandeep Singh Baines, Andrew Morton, Huang Ying, Andi Kleen,
Hugh Dickins, Olaf Hering, Jesse Barnes, Dave Airlie,
Greg Kroah-Hartman, Alan Cox
Don't force output if you intend to reboot immediately.
In this patch, I'm disabling the functionality enabled by
vc->vc_panic_force_write if panic_timeout < 0 (i.e. no timeout).
vc_panic_force_write is only enabled for fb video consoles if the
FBINFO_CAN_FORCE_OUTPUT flag is set.
For our application, we're using ram_oops to preserved the panic in memory.
We want to reliably, and as fast as possible, machine_restart. The
vc_panic_force_write flag results in a bunch of graphics driver code to be
invoked which slows down restart and decreases reliability. Since we're
already storing the panic in RAM and are going to reboot immediately, there
is no benefit in mode switching back to the vc in order to display the panic
output. The log buffer will get flushed by the console_unblank() call so
remote management consoles should see all output.
Signed-off-by: Mandeep Singh Baines <msb@chromium.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Huang Ying <ying.huang@intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Hugh Dickins <hughd@google.com>
Cc: Olaf Hering <olaf@aepfle.de>
Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
Cc: Dave Airlie <airlied@gmail.com>
Cc: Greg Kroah-Hartman <gregkh@suse.de>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
---
include/linux/vt_kern.h | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/include/linux/vt_kern.h b/include/linux/vt_kern.h
index 4d05e14..c2164fa 100644
--- a/include/linux/vt_kern.h
+++ b/include/linux/vt_kern.h
@@ -137,7 +137,7 @@ int vty_init(const struct file_operations *console_fops);
static inline bool vt_force_oops_output(struct vc_data *vc)
{
- if (oops_in_progress && vc->vc_panic_force_write)
+ if (oops_in_progress && vc->vc_panic_force_write && panic_timeout >= 0)
return true;
return false;
}
--
1.7.3.1
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2011-07-15 23:13 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-07-15 22:39 [PATCH 1/2] panic: panic=-1 for immediate reboot Mandeep Singh Baines
2011-07-15 22:40 ` [PATCH 2/2] panic, vt: do not force oops output when panic_timeout < 0 Mandeep Singh Baines
2011-07-15 22:56 ` [PATCH 1/2] panic: panic=-1 for immediate reboot Mandeep Singh Baines
2011-07-15 22:53 Mandeep Singh Baines
2011-07-15 22:53 ` [PATCH 2/2] panic, vt: do not force oops output when panic_timeout < 0 Mandeep Singh Baines
2011-07-15 23:15 ` Alan Cox
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®