All of lore.kernel.org
 help / color / mirror / Atom feed
From: Qianqiang Liu <qianqiang.liu@163.com>
To: Jinchao Wang <wangjinchao600@gmail.com>
Cc: "Sravan Kumar Gundu" <sravankumarlpu@gmail.com>,
	linux-fbdev@vger.kernel.org, "Kees Cook" <kees@kernel.org>,
	"Darrick J. Wong" <djwong@kernel.org>,
	"Yunhui Cui" <cuiyunhui@bytedance.com>,
	"Yicong Yang" <yangyicong@hisilicon.com>,
	linux-hardening@vger.kernel.org, "Ingo Molnar" <mingo@kernel.org>,
	"Ville Syrjälä" <ville.syrjala@linux.intel.com>,
	"Simona Vetter" <simona@ffwll.ch>,
	"Max Kellermann" <max.kellermann@ionos.com>,
	"John Ogness" <john.ogness@linutronix.de>,
	"Baoquan He" <bhe@redhat.com>,
	"Sergey Senozhatsky" <senozhatsky@chromium.org>,
	"Helge Deller" <deller@gmx.de>,
	"Joel Granados" <joel.granados@kernel.org>,
	"Thorsten Blum" <thorsten.blum@linux.dev>,
	"Jason Gunthorpe" <jgg@ziepe.ca>,
	"Dave Young" <dyoung@redhat.com>,
	"Vivek Goyal" <vgoyal@redhat.com>,
	"Petr Mladek" <pmladek@suse.com>,
	"Zsolt Kajtar" <soci@c64.rulez.org>,
	"Yury Norov" <yury.norov@gmail.com>,
	"Steven Rostedt" <rostedt@goodmis.org>,
	"Nam Cao" <namcao@linutronix.de>,
	dri-devel@lists.freedesktop.org,
	"Jonathan Cameron" <Jonathan.Cameron@huawei.com>,
	"Sohil Mehta" <sohil.mehta@intel.com>,
	"Thomas Gleixner" <tglx@linutronix.de>,
	"Luo Gengkun" <luogengkun@huaweicloud.com>,
	"Feng Tang" <feng.tang@linux.alibaba.com>,
	"Shixiong Ou" <oushixiong@kylinos.cn>,
	"Anna Schumaker" <anna.schumaker@oracle.com>,
	"Tony Luck" <tony.luck@intel.com>,
	"Joel Fernandes" <joelagnelf@nvidia.com>,
	kexec@lists.infradead.org,
	"Douglas Anderson" <dianders@chromium.org>,
	"Li Huafei" <lihuafei1@huawei.com>,
	linux-kernel@vger.kernel.org,
	"Thomas Zimmermann" <tzimmermann@suse.de>,
	"Tejun Heo" <tj@kernel.org>,
	"Andrew Morton" <akpm@linux-foundation.org>
Subject: Re: [PATCH v2 3/9] crash_core: use panic_try_start() in crash_kexec()
Date: Fri, 29 Aug 2025 10:30:35 +0800	[thread overview]
Message-ID: <aLEQy-srX89Rndch@debian.debian.local> (raw)
In-Reply-To: <20250825022947.1596226-4-wangjinchao600@gmail.com>

On Mon, Aug 25, 2025 at 10:29:31AM +0800, Jinchao Wang wrote:
> crash_kexec() had its own code to exclude parallel execution by setting
> panic_cpu. This is already handled by panic_try_start(). Switch to
> panic_try_start() to remove the duplication and keep the logic consistent.
> 
> Signed-off-by: Jinchao Wang <wangjinchao600@gmail.com>
> ---
>  kernel/crash_core.c | 15 +++------------
>  1 file changed, 3 insertions(+), 12 deletions(-)
> 
> diff --git a/kernel/crash_core.c b/kernel/crash_core.c
> index a4ef79591eb2..bb38bbaf3a26 100644
> --- a/kernel/crash_core.c
> +++ b/kernel/crash_core.c
> @@ -4,6 +4,7 @@
>   * Copyright (C) 2002-2004 Eric Biederman  <ebiederm@xmission.com>
>   */
>  
> +#include "linux/panic.h"

Can you change this line of code to #include <linux/panic.h>?

>  #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
>  
>  #include <linux/buildid.h>
> @@ -143,17 +144,7 @@ STACK_FRAME_NON_STANDARD(__crash_kexec);
>  
>  __bpf_kfunc void crash_kexec(struct pt_regs *regs)
>  {
> -	int old_cpu, this_cpu;
> -
> -	/*
> -	 * Only one CPU is allowed to execute the crash_kexec() code as with
> -	 * panic().  Otherwise parallel calls of panic() and crash_kexec()
> -	 * may stop each other.  To exclude them, we use panic_cpu here too.
> -	 */
> -	old_cpu = PANIC_CPU_INVALID;
> -	this_cpu = raw_smp_processor_id();
> -
> -	if (atomic_try_cmpxchg(&panic_cpu, &old_cpu, this_cpu)) {
> +	if (panic_try_start()) {
>  		/* This is the 1st CPU which comes here, so go ahead. */
>  		__crash_kexec(regs);
>  
> @@ -161,7 +152,7 @@ __bpf_kfunc void crash_kexec(struct pt_regs *regs)
>  		 * Reset panic_cpu to allow another panic()/crash_kexec()
>  		 * call.
>  		 */
> -		atomic_set(&panic_cpu, PANIC_CPU_INVALID);
> +		panic_reset();
>  	}
>  }
>  
> -- 
> 2.43.0

-- 
Best,
Qianqiang Liu



WARNING: multiple messages have this Message-ID (diff)
From: Qianqiang Liu <qianqiang.liu@163.com>
To: Jinchao Wang <wangjinchao600@gmail.com>
Cc: "Andrew Morton" <akpm@linux-foundation.org>,
	"Baoquan He" <bhe@redhat.com>,
	"Yury Norov" <yury.norov@gmail.com>,
	"Simona Vetter" <simona@ffwll.ch>, "Helge Deller" <deller@gmx.de>,
	"Petr Mladek" <pmladek@suse.com>,
	"Steven Rostedt" <rostedt@goodmis.org>,
	"John Ogness" <john.ogness@linutronix.de>,
	"Sergey Senozhatsky" <senozhatsky@chromium.org>,
	"Vivek Goyal" <vgoyal@redhat.com>,
	"Dave Young" <dyoung@redhat.com>, "Kees Cook" <kees@kernel.org>,
	"Tony Luck" <tony.luck@intel.com>,
	"Guilherme G. Piccoli" <gpiccoli@igalia.com>,
	"Thomas Zimmermann" <tzimmermann@suse.de>,
	"Ville Syrjälä" <ville.syrjala@linux.intel.com>,
	"Shixiong Ou" <oushixiong@kylinos.cn>,
	"Zsolt Kajtar" <soci@c64.rulez.org>,
	"Ingo Molnar" <mingo@kernel.org>,
	"Nam Cao" <namcao@linutronix.de>,
	"Jonathan Cameron" <Jonathan.Cameron@huawei.com>,
	"Joel Fernandes" <joelagnelf@nvidia.com>,
	"Joel Granados" <joel.granados@kernel.org>,
	"Jason Gunthorpe" <jgg@ziepe.ca>,
	"Sohil Mehta" <sohil.mehta@intel.com>,
	"Feng Tang" <feng.tang@linux.alibaba.com>,
	"Sravan Kumar Gundu" <sravankumarlpu@gmail.com>,
	"Douglas Anderson" <dianders@chromium.org>,
	"Thomas Gleixner" <tglx@linutronix.de>,
	"Anna Schumaker" <anna.schumaker@oracle.com>,
	"Darrick J. Wong" <djwong@kernel.org>,
	"Max Kellermann" <max.kellermann@ionos.com>,
	"Yunhui Cui" <cuiyunhui@bytedance.com>,
	"Tejun Heo" <tj@kernel.org>,
	"Luo Gengkun" <luogengkun@huaweicloud.com>,
	"Li Huafei" <lihuafei1@huawei.com>,
	"Thorsten Blum" <thorsten.blum@linux.dev>,
	"Yicong Yang" <yangyicong@hisilicon.com>,
	linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org,
	kexec@lists.infradead.org, linux-hardening@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 3/9] crash_core: use panic_try_start() in crash_kexec()
Date: Fri, 29 Aug 2025 10:30:35 +0800	[thread overview]
Message-ID: <aLEQy-srX89Rndch@debian.debian.local> (raw)
In-Reply-To: <20250825022947.1596226-4-wangjinchao600@gmail.com>

On Mon, Aug 25, 2025 at 10:29:31AM +0800, Jinchao Wang wrote:
> crash_kexec() had its own code to exclude parallel execution by setting
> panic_cpu. This is already handled by panic_try_start(). Switch to
> panic_try_start() to remove the duplication and keep the logic consistent.
> 
> Signed-off-by: Jinchao Wang <wangjinchao600@gmail.com>
> ---
>  kernel/crash_core.c | 15 +++------------
>  1 file changed, 3 insertions(+), 12 deletions(-)
> 
> diff --git a/kernel/crash_core.c b/kernel/crash_core.c
> index a4ef79591eb2..bb38bbaf3a26 100644
> --- a/kernel/crash_core.c
> +++ b/kernel/crash_core.c
> @@ -4,6 +4,7 @@
>   * Copyright (C) 2002-2004 Eric Biederman  <ebiederm@xmission.com>
>   */
>  
> +#include "linux/panic.h"

Can you change this line of code to #include <linux/panic.h>?

>  #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
>  
>  #include <linux/buildid.h>
> @@ -143,17 +144,7 @@ STACK_FRAME_NON_STANDARD(__crash_kexec);
>  
>  __bpf_kfunc void crash_kexec(struct pt_regs *regs)
>  {
> -	int old_cpu, this_cpu;
> -
> -	/*
> -	 * Only one CPU is allowed to execute the crash_kexec() code as with
> -	 * panic().  Otherwise parallel calls of panic() and crash_kexec()
> -	 * may stop each other.  To exclude them, we use panic_cpu here too.
> -	 */
> -	old_cpu = PANIC_CPU_INVALID;
> -	this_cpu = raw_smp_processor_id();
> -
> -	if (atomic_try_cmpxchg(&panic_cpu, &old_cpu, this_cpu)) {
> +	if (panic_try_start()) {
>  		/* This is the 1st CPU which comes here, so go ahead. */
>  		__crash_kexec(regs);
>  
> @@ -161,7 +152,7 @@ __bpf_kfunc void crash_kexec(struct pt_regs *regs)
>  		 * Reset panic_cpu to allow another panic()/crash_kexec()
>  		 * call.
>  		 */
> -		atomic_set(&panic_cpu, PANIC_CPU_INVALID);
> +		panic_reset();
>  	}
>  }
>  
> -- 
> 2.43.0

-- 
Best,
Qianqiang Liu


  reply	other threads:[~2025-08-30 17:47 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-08-25  2:29 [PATCH v2 0/9] panic: introduce panic status function family Jinchao Wang
2025-08-25  2:29 ` [PATCH v2 1/9] panic: Introduce helper functions for panic state Jinchao Wang
2025-09-16  9:57   ` Petr Mladek
2025-09-16  9:57     ` Petr Mladek
2025-09-17  2:09     ` Jinchao Wang
2025-09-17  2:09       ` Jinchao Wang
2025-08-25  2:29 ` [PATCH v2 2/9] fbdev: Use panic_in_progress() helper Jinchao Wang
2025-08-25  2:29 ` [PATCH v2 3/9] crash_core: use panic_try_start() in crash_kexec() Jinchao Wang
2025-08-29  2:30   ` Qianqiang Liu [this message]
2025-08-29  2:30     ` Qianqiang Liu
2025-08-29  4:39     ` Jinchao Wang
2025-08-29  4:39       ` Jinchao Wang
2025-08-25  2:29 ` [PATCH v2 4/9] panic: use panic_try_start() in nmi_panic() Jinchao Wang
2025-08-25  2:29 ` [PATCH v2 5/9] panic: use panic_try_start() in vpanic() Jinchao Wang
2025-09-16 11:20   ` Petr Mladek
2025-09-16 11:20     ` Petr Mladek
2025-08-25  2:29 ` [PATCH v2 6/9] printk/nbcon: use panic_on_this_cpu() helper Jinchao Wang
2025-09-16 11:21   ` Petr Mladek
2025-09-16 11:21     ` Petr Mladek
2025-08-25  2:29 ` [PATCH v2 7/9] panic/printk: replace this_cpu_in_panic() with panic_on_this_cpu() Jinchao Wang
2025-09-16 11:22   ` Petr Mladek
2025-09-16 11:22     ` Petr Mladek
2025-08-25  2:29 ` [PATCH v2 8/9] panic/printk: replace other_cpu_in_panic() with panic_on_other_cpu() Jinchao Wang
2025-09-16 11:23   ` Petr Mladek
2025-09-16 11:23     ` Petr Mladek
2025-08-25  2:29 ` [PATCH v2 9/9] watchdog: skip checks when panic is in progress Jinchao Wang

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=aLEQy-srX89Rndch@debian.debian.local \
    --to=qianqiang.liu@163.com \
    --cc=Jonathan.Cameron@huawei.com \
    --cc=akpm@linux-foundation.org \
    --cc=anna.schumaker@oracle.com \
    --cc=bhe@redhat.com \
    --cc=cuiyunhui@bytedance.com \
    --cc=deller@gmx.de \
    --cc=dianders@chromium.org \
    --cc=djwong@kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=dyoung@redhat.com \
    --cc=feng.tang@linux.alibaba.com \
    --cc=jgg@ziepe.ca \
    --cc=joel.granados@kernel.org \
    --cc=joelagnelf@nvidia.com \
    --cc=john.ogness@linutronix.de \
    --cc=kees@kernel.org \
    --cc=kexec@lists.infradead.org \
    --cc=lihuafei1@huawei.com \
    --cc=linux-fbdev@vger.kernel.org \
    --cc=linux-hardening@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luogengkun@huaweicloud.com \
    --cc=max.kellermann@ionos.com \
    --cc=mingo@kernel.org \
    --cc=namcao@linutronix.de \
    --cc=oushixiong@kylinos.cn \
    --cc=pmladek@suse.com \
    --cc=rostedt@goodmis.org \
    --cc=senozhatsky@chromium.org \
    --cc=simona@ffwll.ch \
    --cc=soci@c64.rulez.org \
    --cc=sohil.mehta@intel.com \
    --cc=sravankumarlpu@gmail.com \
    --cc=tglx@linutronix.de \
    --cc=thorsten.blum@linux.dev \
    --cc=tj@kernel.org \
    --cc=tony.luck@intel.com \
    --cc=tzimmermann@suse.de \
    --cc=vgoyal@redhat.com \
    --cc=ville.syrjala@linux.intel.com \
    --cc=wangjinchao600@gmail.com \
    --cc=yangyicong@hisilicon.com \
    --cc=yury.norov@gmail.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.