All of lore.kernel.org
 help / color / mirror / Atom feed
From: Borislav Petkov <bp@alien8.de>
To: Oliver Neukum <oneukum@suse.de>
Cc: linux-pm@lists.linux-foundation.org, linux-kernel@vger.kernel.org
Subject: Re: better oopsing when frozen
Date: Mon, 25 Jul 2011 12:10:08 +0200	[thread overview]
Message-ID: <20110725101008.GA22126__38919.9962759905$1311588771$gmane$org@liondog.tnic> (raw)
In-Reply-To: <201107251043.19932.oneukum@suse.de>

On Mon, Jul 25, 2011 at 10:43:19AM +0200, Oliver Neukum wrote:
> Hi Rafael,
> 
> I had a problem with the kernel stopping the machine forever because I got an
> oops while tasks were frozen. It seems to me that we should thaw when this
> happens. How about this approach?
> 
> 	Regards
> 		Oliver
> 
> From 6f3b5e7a5c7ccf3564bdd2e703eba7eee753ecdc Mon Sep 17 00:00:00 2001
> From: Oliver Neukum <oliver@neukum.org>
> Date: Fri, 22 Jul 2011 11:20:19 +0200
> Subject: [PATCH] unfreeze tasks if an oops happens while tasks are frozen
> 
> If an oops kills the task suspending or snapshotting
> is system, the system is dead because the action is
> never completed and the tasks never thawed.
> 
> Signed-off-by: Oliver Neukum <oneukum@suse.de>
> ---
>  include/linux/freezer.h |    1 +
>  kernel/panic.c          |    2 ++
>  kernel/power/process.c  |   11 +++++++++++
>  3 files changed, 14 insertions(+), 0 deletions(-)
> 
> diff --git a/include/linux/freezer.h b/include/linux/freezer.h
> index 1effc8b..9907cf6 100644
> --- a/include/linux/freezer.h
> +++ b/include/linux/freezer.h
> @@ -50,6 +50,7 @@ extern int thaw_process(struct task_struct *p);
>  extern void refrigerator(void);
>  extern int freeze_processes(void);
>  extern void thaw_processes(void);
> +extern void thaw_in_oops(void);
>  
>  static inline int try_to_freeze(void)
>  {
> diff --git a/kernel/panic.c b/kernel/panic.c
> index 6923167..255e662 100644
> --- a/kernel/panic.c
> +++ b/kernel/panic.c
> @@ -23,6 +23,7 @@
>  #include <linux/init.h>
>  #include <linux/nmi.h>
>  #include <linux/dmi.h>
> +#include <linux/freezer.h>
>  
>  #define PANIC_TIMER_STEP 100
>  #define PANIC_BLINK_SPD 18
> @@ -355,6 +356,7 @@ void oops_exit(void)
>  	do_oops_enter_exit();
>  	print_oops_end_marker();
>  	kmsg_dump(KMSG_DUMP_OOPS);
> +	thaw_in_oops();
>  }
>  
>  #ifdef WANT_WARN_ON_SLOWPATH
> diff --git a/kernel/power/process.c b/kernel/power/process.c
> index 0cf3a27..20994cd 100644
> --- a/kernel/power/process.c
> +++ b/kernel/power/process.c
> @@ -22,6 +22,9 @@
>   */
>  #define TIMEOUT	(20 * HZ)
>  
> +/* in case we oops while processes are frozen */
> +static bool tasks_fozen = false;

I think you mean 'tasks_frozen' here :).

-- 
Regards/Gruss,
    Boris.

  parent reply	other threads:[~2011-07-25 10:10 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-07-25  8:43 better oopsing when frozen Oliver Neukum
2011-07-25 10:10 ` Borislav Petkov
2011-07-25 10:10 ` Borislav Petkov [this message]
2011-07-26 22:24 ` Rafael J. Wysocki
2011-07-26 22:24 ` Rafael J. Wysocki
2011-07-26 22:45   ` Andrew Morton
2011-07-27  9:21     ` Rafael J. Wysocki
2011-07-27  9:21     ` Rafael J. Wysocki
2011-07-27 10:23       ` Oliver Neukum
2011-07-27 10:23       ` Oliver Neukum
2011-07-26 22:45   ` Andrew Morton
2011-07-29 19:54 ` [linux-pm] " Pavel Machek
2011-07-29 20:27   ` Oliver Neukum
2011-07-29 20:29     ` Rafael J. Wysocki
2011-07-29 20:29     ` Rafael J. Wysocki
2011-07-29 20:27   ` Oliver Neukum
2011-07-29 20:27   ` [linux-pm] " Rafael J. Wysocki
2011-07-29 20:27     ` Rafael J. Wysocki
2011-07-29 21:04     ` Oliver Neukum
2011-07-29 21:04     ` [linux-pm] " Oliver Neukum
2011-07-29 21:09       ` Rafael J. Wysocki
2011-07-29 21:09       ` [linux-pm] " Rafael J. Wysocki
2011-07-29 21:17         ` Oliver Neukum
2011-07-29 21:17         ` [linux-pm] " Oliver Neukum
2011-07-29 21:30           ` Rafael J. Wysocki
2011-07-29 21:30             ` Rafael J. Wysocki
2011-07-29 19:54 ` Pavel Machek
2011-07-25  8:43 Oliver Neukum

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='20110725101008.GA22126__38919.9962759905$1311588771$gmane$org@liondog.tnic' \
    --to=bp@alien8.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@lists.linux-foundation.org \
    --cc=oneukum@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.