All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vivek Goyal <vgoyal@redhat.com>
To: "\"Hatayama, Daisuke/畑山 大輔\"" <d.hatayama@jp.fujitsu.com>
Cc: bhe@redhat.com, kexec@lists.infradead.org,
	linux-kernel@vger.kernel.org, hidehiro.kawai.ez@hitachi.com,
	ebiederm@xmission.com, masami.hiramatsu.pt@hitachi.com
Subject: Re: [PATCH v2] kernel/panic/kexec: fix "crash_kexec_post_notifiers" option issue in oops path
Date: Fri, 6 Mar 2015 13:08:19 -0500	[thread overview]
Message-ID: <20150306180819.GB15736@redhat.com> (raw)
In-Reply-To: <54F9D645.2050008@jp.fujitsu.com>

On Sat, Mar 07, 2015 at 01:31:01AM +0900, "Hatayama, Daisuke/畑山 大輔" wrote:
> The commit f06e5153f4ae2e2f3b0300f0e260e40cb7fefd45 introduced
> "crash_kexec_post_notifiers" kernel boot option, which toggles
> wheather panic() calls crash_kexec() before panic_notifiers and dump
> kmsg or after.
> 
> The problem is that the commit overlooks panic_on_oops kernel boot
> option. If it is enabled, crash_kexec() is called directly without
> going through panic() in oops path.
> 
> To fix this issue, this patch adds a check to
> "crash_kexec_post_notifiers" in the condition of kexec_should_crash().
> 
> Also, put a comment in kexec_should_crash() to explain not obvious
> things on this patch.
> 
> Signed-off-by: HATAYAMA Daisuke <d.hatayama@jp.fujitsu.com>
> Acked-by: Baoquan He <bhe@redhat.com>
> Tested-by: Hidehiro Kawai <hidehiro.kawai.ez@hitachi.com>
> Reviewed-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>

Looks good to me.

Acked-by: Vivek Goyal <vgoyal@redhat.com>

Thanks
Vivek

> ---
>  include/linux/kernel.h |  3 +++
>  kernel/kexec.c         | 11 +++++++++++
>  kernel/panic.c         |  2 +-
>  3 files changed, 15 insertions(+), 1 deletion(-)
> 
> diff --git a/include/linux/kernel.h b/include/linux/kernel.h
> index d6d630d..07483c7 100644
> --- a/include/linux/kernel.h
> +++ b/include/linux/kernel.h
> @@ -426,6 +426,9 @@ extern int panic_on_unrecovered_nmi;
>  extern int panic_on_io_nmi;
>  extern int panic_on_warn;
>  extern int sysctl_panic_on_stackoverflow;
> +
> +extern bool crash_kexec_post_notifiers;
> +
>  /*
>   * Only to be used by arch init code. If the user over-wrote the default
>   * CONFIG_PANIC_TIMEOUT, honor it.
> diff --git a/kernel/kexec.c b/kernel/kexec.c
> index 38c25b1..5bf6077 100644
> --- a/kernel/kexec.c
> +++ b/kernel/kexec.c
> @@ -84,6 +84,17 @@ struct resource crashk_low_res = {
> 
>  int kexec_should_crash(struct task_struct *p)
>  {
> +	/*
> +	 * If crash_kexec_post_notifiers is enabled, don't run
> +	 * crash_kexec() here yet, which must be run after panic
> +	 * notifiers in panic().
> +	 */
> +	if (crash_kexec_post_notifiers)
> +		return 0;
> +	/*
> +	 * There are 4 panic() calls in do_exit() path, each of which
> +	 * calls corresponds to each of these 4 conditions.
> +	 */
>  	if (in_interrupt() || !p->pid || is_global_init(p) || panic_on_oops)
>  		return 1;
>  	return 0;
> diff --git a/kernel/panic.c b/kernel/panic.c
> index 8136ad7..79ca912 100644
> --- a/kernel/panic.c
> +++ b/kernel/panic.c
> @@ -32,7 +32,7 @@ static unsigned long tainted_mask;
>  static int pause_on_oops;
>  static int pause_on_oops_flag;
>  static DEFINE_SPINLOCK(pause_on_oops_lock);
> -static bool crash_kexec_post_notifiers;
> +bool crash_kexec_post_notifiers;
>  int panic_on_warn __read_mostly;
> 
>  int panic_timeout = CONFIG_PANIC_TIMEOUT;
> -- 
> 1.9.3
> 

_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec

WARNING: multiple messages have this Message-ID (diff)
From: Vivek Goyal <vgoyal@redhat.com>
To: "\"Hatayama, Daisuke/畑山 大輔\"" <d.hatayama@jp.fujitsu.com>
Cc: ebiederm@xmission.com, masami.hiramatsu.pt@hitachi.com,
	hidehiro.kawai.ez@hitachi.com, bhe@redhat.com,
	linux-kernel@vger.kernel.org, kexec@lists.infradead.org
Subject: Re: [PATCH v2] kernel/panic/kexec: fix "crash_kexec_post_notifiers" option issue in oops path
Date: Fri, 6 Mar 2015 13:08:19 -0500	[thread overview]
Message-ID: <20150306180819.GB15736@redhat.com> (raw)
In-Reply-To: <54F9D645.2050008@jp.fujitsu.com>

On Sat, Mar 07, 2015 at 01:31:01AM +0900, "Hatayama, Daisuke/畑山 大輔" wrote:
> The commit f06e5153f4ae2e2f3b0300f0e260e40cb7fefd45 introduced
> "crash_kexec_post_notifiers" kernel boot option, which toggles
> wheather panic() calls crash_kexec() before panic_notifiers and dump
> kmsg or after.
> 
> The problem is that the commit overlooks panic_on_oops kernel boot
> option. If it is enabled, crash_kexec() is called directly without
> going through panic() in oops path.
> 
> To fix this issue, this patch adds a check to
> "crash_kexec_post_notifiers" in the condition of kexec_should_crash().
> 
> Also, put a comment in kexec_should_crash() to explain not obvious
> things on this patch.
> 
> Signed-off-by: HATAYAMA Daisuke <d.hatayama@jp.fujitsu.com>
> Acked-by: Baoquan He <bhe@redhat.com>
> Tested-by: Hidehiro Kawai <hidehiro.kawai.ez@hitachi.com>
> Reviewed-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>

Looks good to me.

Acked-by: Vivek Goyal <vgoyal@redhat.com>

Thanks
Vivek

> ---
>  include/linux/kernel.h |  3 +++
>  kernel/kexec.c         | 11 +++++++++++
>  kernel/panic.c         |  2 +-
>  3 files changed, 15 insertions(+), 1 deletion(-)
> 
> diff --git a/include/linux/kernel.h b/include/linux/kernel.h
> index d6d630d..07483c7 100644
> --- a/include/linux/kernel.h
> +++ b/include/linux/kernel.h
> @@ -426,6 +426,9 @@ extern int panic_on_unrecovered_nmi;
>  extern int panic_on_io_nmi;
>  extern int panic_on_warn;
>  extern int sysctl_panic_on_stackoverflow;
> +
> +extern bool crash_kexec_post_notifiers;
> +
>  /*
>   * Only to be used by arch init code. If the user over-wrote the default
>   * CONFIG_PANIC_TIMEOUT, honor it.
> diff --git a/kernel/kexec.c b/kernel/kexec.c
> index 38c25b1..5bf6077 100644
> --- a/kernel/kexec.c
> +++ b/kernel/kexec.c
> @@ -84,6 +84,17 @@ struct resource crashk_low_res = {
> 
>  int kexec_should_crash(struct task_struct *p)
>  {
> +	/*
> +	 * If crash_kexec_post_notifiers is enabled, don't run
> +	 * crash_kexec() here yet, which must be run after panic
> +	 * notifiers in panic().
> +	 */
> +	if (crash_kexec_post_notifiers)
> +		return 0;
> +	/*
> +	 * There are 4 panic() calls in do_exit() path, each of which
> +	 * calls corresponds to each of these 4 conditions.
> +	 */
>  	if (in_interrupt() || !p->pid || is_global_init(p) || panic_on_oops)
>  		return 1;
>  	return 0;
> diff --git a/kernel/panic.c b/kernel/panic.c
> index 8136ad7..79ca912 100644
> --- a/kernel/panic.c
> +++ b/kernel/panic.c
> @@ -32,7 +32,7 @@ static unsigned long tainted_mask;
>  static int pause_on_oops;
>  static int pause_on_oops_flag;
>  static DEFINE_SPINLOCK(pause_on_oops_lock);
> -static bool crash_kexec_post_notifiers;
> +bool crash_kexec_post_notifiers;
>  int panic_on_warn __read_mostly;
> 
>  int panic_timeout = CONFIG_PANIC_TIMEOUT;
> -- 
> 1.9.3
> 

  reply	other threads:[~2015-03-06 18:08 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-06 16:31 [PATCH v2] kernel/panic/kexec: fix "crash_kexec_post_notifiers" option issue in oops path "Hatayama, Daisuke/畑山 大輔"
2015-03-06 16:31 ` "Hatayama, Daisuke/畑山 大輔"
2015-03-06 18:08 ` Vivek Goyal [this message]
2015-03-06 18:08   ` Vivek Goyal
2015-03-23  3:47 ` Baoquan He
2015-03-23  3:47   ` Baoquan He
2015-03-23  7:19   ` Ingo Molnar
2015-03-23  7:19     ` Ingo Molnar
2015-03-23 13:37     ` Vivek Goyal
2015-03-23 13:37       ` Vivek Goyal
2015-03-23 13:50       ` Ingo Molnar
2015-03-23 13:50         ` Ingo Molnar
2015-03-23 14:31         ` Vivek Goyal
2015-03-23 14:31           ` Vivek Goyal
2015-03-23 16:01           ` Don Zickus
2015-03-23 16:01             ` Don Zickus
2015-03-24  3:58           ` Masami Hiramatsu
2015-03-24  3:58             ` Masami Hiramatsu
2015-03-23 15:36     ` Vivek Goyal
2015-03-23 15:36       ` Vivek Goyal
2015-03-24  3:30     ` Masami Hiramatsu
2015-03-24  3:30       ` Masami Hiramatsu
2015-03-24  7:11       ` Ingo Molnar
2015-03-24  7:11         ` Ingo Molnar
2015-03-24 10:27         ` Eric W. Biederman
2015-03-24 10:27           ` Eric W. Biederman
2015-03-24 14:32           ` Vivek Goyal
2015-03-24 14:32             ` Vivek Goyal
2015-03-25 15:07             ` Hidehiro Kawai
2015-03-25 15:07               ` Hidehiro Kawai
2015-03-24 14:46         ` Vivek Goyal
2015-03-24 14:46           ` Vivek Goyal
2015-03-24 16:18           ` Ingo Molnar
2015-03-24 16:18             ` Ingo Molnar
2015-03-24 17:04             ` Vivek Goyal
2015-03-24 17:04               ` Vivek Goyal
2015-05-12  8:43               ` Hidehiro Kawai
2015-05-12  8:43                 ` Hidehiro Kawai

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=20150306180819.GB15736@redhat.com \
    --to=vgoyal@redhat.com \
    --cc=bhe@redhat.com \
    --cc=d.hatayama@jp.fujitsu.com \
    --cc=ebiederm@xmission.com \
    --cc=hidehiro.kawai.ez@hitachi.com \
    --cc=kexec@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=masami.hiramatsu.pt@hitachi.com \
    /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.