From: Don Zickus <dzickus@redhat.com>
To: "Luck, Tony" <tony.luck@intel.com>
Cc: Seiji Aguchi <seiji.aguchi@hds.com>,
Chen Gong <gong.chen@linux.intel.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Matthew Garrett <mjg@redhat.com>, Vivek Goyal <vgoyal@redhat.com>,
"Chen, Gong" <gong.chen@intel.com>,
"akpm@linux-foundation.org" <akpm@linux-foundation.org>,
"Brown, Len" <len.brown@intel.com>,
"'ying.huang@intel.com'" <ying.huang@intel.com>,
"'ak@linux.intel.com'" <ak@linux.intel.com>,
"'hughd@chromium.org'" <hughd@chromium.org>,
"'mingo@elte.hu'" <mingo@elte.hu>,
"jmorris@namei.org" <jmorris@namei.org>,
"a.p.zijlstra@chello.nl" <a.p.zijlstra@chello.nl>,
"namhyung@gmail.com" <namhyung@gmail.com>,
"dle-develop@lists.sourceforge.net"
<dle-develop@lists.sourceforge.net>,
Satoru Moriya <satoru.moriya@hds.com>
Subject: Re: [RFC][PATCH v4 -next 1/4] Move kmsg_dump(KMSG_DUMP_PANIC) below smp_send_stop()
Date: Fri, 3 Feb 2012 17:57:40 -0500 [thread overview]
Message-ID: <20120203225740.GO5650@redhat.com> (raw)
In-Reply-To: <3908561D78D1C84285E8C5FCA982C28F02B380@ORSMSX104.amr.corp.intel.com>
On Fri, Feb 03, 2012 at 10:32:31PM +0000, Luck, Tony wrote:
> > What if we send the REBOOT_IPI first and let it block for up to a second.
> > Most code paths that are done with spin_locks will use
> > spin_lock_irqrestore. As soon as the interrupts are re-enabled the
> > REBOOT_IPI comes in and takes the processor. If after a second the cpu
> > still is blocking interrupts, just use the NMI as a big hammer to shut it
> > down.
>
> This looks good - it certainly deals with my "if we just let them run
> a bit, they'd release the locks" quibble. One second sounds very
> generous - but I'm not going to bikeshed that (so long as it is a total
> of one second - not one second per cpu). So the pseudo-code is:
This is how the stop_cpus is implemented on x86 and the one second comes
from there
arch/x86/kernel/smp.c::native_irq_stop_other_cpus and
native_nmi_stop_other_cpus
>
> send_reboot_ipi_to_everyone_else()
>
> wait_1_second()
>
> for_each_cpu_that_didnt_respond_to_reboot_ipi {
> hit_that_cpu_with_NMI()
> }
>
> Perhaps a notification printk() if we had to use the NMI hammer?
Yes.
Again this is for x86, but I guess that is our common case with pstore.
Cheers,
Don
next prev parent reply other threads:[~2012-02-03 22:58 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-01-05 17:35 [RFC][PATCH v4 -next 0/4] Make pstore/kmsg_dump run after stopping other cpus in panic path Seiji Aguchi
2012-01-05 17:36 ` [RFC][PATCH v4 -next 1/4] Move kmsg_dump(KMSG_DUMP_PANIC) below smp_send_stop() Seiji Aguchi
2012-01-05 19:06 ` Luck, Tony
2012-01-05 20:10 ` Seiji Aguchi
2012-01-05 21:01 ` Don Zickus
2012-01-09 17:59 ` Seiji Aguchi
2012-01-10 3:06 ` Chen Gong
2012-01-10 20:29 ` Seiji Aguchi
2012-01-11 7:28 ` Chen Gong
2012-01-11 17:25 ` Don Zickus
2012-01-11 22:22 ` Luck, Tony
2012-01-13 22:50 ` Seiji Aguchi
[not found] ` <32727E9A83EE9A42A1F0906295A3A77B2C78F49973@USINDEVS01.corp.hds.com>
2012-01-19 20:58 ` Seiji Aguchi
2012-01-20 17:56 ` Luck, Tony
2012-02-03 17:18 ` Don Zickus
2012-02-03 22:32 ` Luck, Tony
2012-02-03 22:57 ` Don Zickus [this message]
2012-02-08 20:19 ` Don Zickus
2012-02-08 21:28 ` Luck, Tony
2012-02-08 22:48 ` Don Zickus
2012-02-08 22:56 ` Seiji Aguchi
2012-01-05 17:38 ` [RFC][PATCH v4 -next 2/4] Skip spin_locks in panic case and Add WARN_ON() Seiji Aguchi
2012-01-05 17:39 ` [RFC][PATCH v4 -next 3/4]Skip subsequent kmsg_dump() function calls in panic path Seiji Aguchi
2012-01-05 17:41 ` [RFC][PATCH v4 -next 4/4] Skip spin_lock of efi_pstore_write() in panic case Seiji Aguchi
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=20120203225740.GO5650@redhat.com \
--to=dzickus@redhat.com \
--cc=a.p.zijlstra@chello.nl \
--cc=ak@linux.intel.com \
--cc=akpm@linux-foundation.org \
--cc=dle-develop@lists.sourceforge.net \
--cc=gong.chen@intel.com \
--cc=gong.chen@linux.intel.com \
--cc=hughd@chromium.org \
--cc=jmorris@namei.org \
--cc=len.brown@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=mjg@redhat.com \
--cc=namhyung@gmail.com \
--cc=satoru.moriya@hds.com \
--cc=seiji.aguchi@hds.com \
--cc=tony.luck@intel.com \
--cc=vgoyal@redhat.com \
--cc=ying.huang@intel.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.