From: Peter Zijlstra <peterz@infradead.org>
To: "河合英宏 / KAWAI,HIDEHIRO" <hidehiro.kawai.ez@hitachi.com>
Cc: "x86@kernel.org" <x86@kernel.org>,
"Jonathan Corbet" <corbet@lwn.net>,
"linux-doc@vger.kernel.org" <linux-doc@vger.kernel.org>,
"kexec@lists.infradead.org" <kexec@lists.infradead.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"Michal Hocko" <mhocko@kernel.org>,
"Thomas Gleixner" <tglx@linutronix.de>,
"Eric W. Biederman" <ebiederm@xmission.com>,
"H. Peter Anvin" <hpa@zytor.com>,
"平松雅巳 / HIRAMATU,MASAMI" <masami.hiramatsu.pt@hitachi.com>,
"Andrew Morton" <akpm@linux-foundation.org>,
"Ingo Molnar" <mingo@kernel.org>,
"Vivek Goyal" <vgoyal@redhat.com>
Subject: Re: [V3 PATCH 3/4] kexec: Fix race between panic() and crash_kexec() called directly
Date: Mon, 31 Aug 2015 11:07:33 +0200 [thread overview]
Message-ID: <20150831090733.GI19282@twins.programming.kicks-ass.net> (raw)
In-Reply-To: <04EAB7311EE43145B2D3536183D1A8445495793E@GSjpTKYDCembx31.service.hitachi.net>
On Mon, Aug 31, 2015 at 08:53:11AM +0000, 河合英宏 / KAWAI,HIDEHIRO wrote:
> > I understand your question. I don't intend to permit the recursive
> > call of crash_kexec() as for 'old_cpu != this_cpu' check. That is
> > needed for the case of panic() --> crash_kexec(). Since panic_cpu has
> > already been set to this_cpu in panic() (please see PATCH 1/4), no one
> > can run crash_kexec() without 'old_cpu != this_cpu' check.
> >
> > If you don't like this check, I would also be able to handle this case
> > like below:
> >
> > crash_kexec()
> > {
> > old_cpu = atomic_cmpxchg(&panic_cpu, -1, this_cpu);
> > if (old_cpu != -1)
> > return;
> >
> > __crash_kexec();
> > }
> >
> > panic()
> > {
> > atomic_cmpxchg(&panic_cpu, -1, this_cpu);
> > __crash_kexec();
> > ...
> >
>
> Is that OK?
I suppose so, but I think me getting confused means comments can be
added/improved.
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
WARNING: multiple messages have this Message-ID (diff)
From: Peter Zijlstra <peterz@infradead.org>
To: "河合英宏 / KAWAI,HIDEHIRO" <hidehiro.kawai.ez@hitachi.com>
Cc: "Jonathan Corbet" <corbet@lwn.net>,
"Ingo Molnar" <mingo@kernel.org>,
"Eric W. Biederman" <ebiederm@xmission.com>,
"H. Peter Anvin" <hpa@zytor.com>,
"Andrew Morton" <akpm@linux-foundation.org>,
"Thomas Gleixner" <tglx@linutronix.de>,
"Vivek Goyal" <vgoyal@redhat.com>,
"linux-doc@vger.kernel.org" <linux-doc@vger.kernel.org>,
"x86@kernel.org" <x86@kernel.org>,
"kexec@lists.infradead.org" <kexec@lists.infradead.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"Michal Hocko" <mhocko@kernel.org>,
"平松雅巳 / HIRAMATU,MASAMI" <masami.hiramatsu.pt@hitachi.com>
Subject: Re: [V3 PATCH 3/4] kexec: Fix race between panic() and crash_kexec() called directly
Date: Mon, 31 Aug 2015 11:07:33 +0200 [thread overview]
Message-ID: <20150831090733.GI19282@twins.programming.kicks-ass.net> (raw)
In-Reply-To: <04EAB7311EE43145B2D3536183D1A8445495793E@GSjpTKYDCembx31.service.hitachi.net>
On Mon, Aug 31, 2015 at 08:53:11AM +0000, 河合英宏 / KAWAI,HIDEHIRO wrote:
> > I understand your question. I don't intend to permit the recursive
> > call of crash_kexec() as for 'old_cpu != this_cpu' check. That is
> > needed for the case of panic() --> crash_kexec(). Since panic_cpu has
> > already been set to this_cpu in panic() (please see PATCH 1/4), no one
> > can run crash_kexec() without 'old_cpu != this_cpu' check.
> >
> > If you don't like this check, I would also be able to handle this case
> > like below:
> >
> > crash_kexec()
> > {
> > old_cpu = atomic_cmpxchg(&panic_cpu, -1, this_cpu);
> > if (old_cpu != -1)
> > return;
> >
> > __crash_kexec();
> > }
> >
> > panic()
> > {
> > atomic_cmpxchg(&panic_cpu, -1, this_cpu);
> > __crash_kexec();
> > ...
> >
>
> Is that OK?
I suppose so, but I think me getting confused means comments can be
added/improved.
next prev parent reply other threads:[~2015-08-31 9:07 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-06 5:45 [V3 PATCH 0/4] Fix race issues among panic, NMI and crash_kexec Hidehiro Kawai
2015-08-06 5:45 ` Hidehiro Kawai
2015-08-06 5:45 ` [V3 PATCH 2/4] panic/x86: Allow cpus to save registers even if they are looping in NMI context Hidehiro Kawai
2015-08-06 5:45 ` Hidehiro Kawai
2015-08-20 23:18 ` Peter Zijlstra
2015-08-20 23:18 ` Peter Zijlstra
2015-08-22 1:43 ` 河合英宏 / KAWAI,HIDEHIRO
2015-08-22 1:43 ` 河合英宏 / KAWAI,HIDEHIRO
2015-08-06 5:45 ` [V3 PATCH 1/4] panic/x86: Fix re-entrance problem due to panic on NMI Hidehiro Kawai
2015-08-06 5:45 ` Hidehiro Kawai
2015-08-20 23:45 ` Peter Zijlstra
2015-08-20 23:45 ` Peter Zijlstra
2015-08-22 0:46 ` 河合英宏 / KAWAI,HIDEHIRO
2015-08-22 0:46 ` 河合英宏 / KAWAI,HIDEHIRO
2015-08-06 5:45 ` [V3 PATCH 3/4] kexec: Fix race between panic() and crash_kexec() called directly Hidehiro Kawai
2015-08-06 5:45 ` Hidehiro Kawai
2015-08-20 23:08 ` Peter Zijlstra
2015-08-20 23:08 ` Peter Zijlstra
2015-08-22 2:35 ` 河合英宏 / KAWAI,HIDEHIRO
2015-08-22 2:35 ` 河合英宏 / KAWAI,HIDEHIRO
2015-08-25 14:52 ` Peter Zijlstra
2015-08-25 14:52 ` Peter Zijlstra
2015-08-26 3:11 ` 河合英宏 / KAWAI,HIDEHIRO
2015-08-26 3:11 ` 河合英宏 / KAWAI,HIDEHIRO
2015-08-31 8:53 ` 河合英宏 / KAWAI,HIDEHIRO
2015-08-31 8:53 ` 河合英宏 / KAWAI,HIDEHIRO
2015-08-31 9:07 ` Peter Zijlstra [this message]
2015-08-31 9:07 ` Peter Zijlstra
2015-08-31 9:57 ` 河合英宏 / KAWAI,HIDEHIRO
2015-08-31 9:57 ` 河合英宏 / KAWAI,HIDEHIRO
2015-08-06 5:45 ` [V3 PATCH 4/4] x86/apic: Introduce noextnmi boot option Hidehiro Kawai
2015-08-06 5:45 ` Hidehiro Kawai
2015-08-07 14:38 ` [V3 PATCH 0/4] Fix race issues among panic, NMI and crash_kexec Michal Hocko
2015-08-07 14:38 ` Michal Hocko
2015-08-20 23:17 ` Peter Zijlstra
2015-08-20 23:17 ` Peter Zijlstra
2015-08-22 0:41 ` 河合英宏 / KAWAI,HIDEHIRO
2015-08-22 0:41 ` 河合英宏 / KAWAI,HIDEHIRO
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=20150831090733.GI19282@twins.programming.kicks-ass.net \
--to=peterz@infradead.org \
--cc=akpm@linux-foundation.org \
--cc=corbet@lwn.net \
--cc=ebiederm@xmission.com \
--cc=hidehiro.kawai.ez@hitachi.com \
--cc=hpa@zytor.com \
--cc=kexec@lists.infradead.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=masami.hiramatsu.pt@hitachi.com \
--cc=mhocko@kernel.org \
--cc=mingo@kernel.org \
--cc=tglx@linutronix.de \
--cc=vgoyal@redhat.com \
--cc=x86@kernel.org \
/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.