LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Ingo Molnar <mingo@elte.hu>
To: Vivek Goyal <vgoyal@redhat.com>
Cc: Neil Horman <nhorman@tuxdriver.com>,
	tglx@linutronix.de, mingo@redhat.com, kexec@lists.infradead.org,
	linux-kernel@vger.kernel.org, hpa@zytor.com
Subject: Re: [PATCH], issue EOI to APIC prior to calling crash_kexec in die_nmi path
Date: Wed, 6 Feb 2008 23:53:55 +0100	[thread overview]
Message-ID: <20080206225355.GB4316@elte.hu> (raw)
In-Reply-To: <20080206224805.GD11886@redhat.com>


* Vivek Goyal <vgoyal@redhat.com> wrote:

> On Wed, Feb 06, 2008 at 11:00:01PM +0100, Ingo Molnar wrote:
> > 
> > * Neil Horman <nhorman@tuxdriver.com> wrote:
> > 
> > >  	if (!user_mode_vm(regs)) {
> > > +		nmi_exit();
> > > +		local_irq_enable();
> > >  		current->thread.trap_no = 2;
> > >  		crash_kexec(regs);
> > 
> > looks good to me, but please move the local_irq_enable() to within 
> > crash_kexec() instead - probably inside the "got the kexec lock" 
> > section. That makes crash_kexec() use generally safer too i guess: right 
> > it seems that die() too can call crash_kexec() with irqs disabled - and 
> > can thus hang in smp_send_stop() [or wherever it hung before].
> > 
> 
> In general, I think we should not be servicing interrupts once the 
> system has crashed and crash_kexec() has been invoked.
> 
> In fact, right now machine_crash_shutdown() explicity disables 
> interrupt before sending NMIs to other cpus to stop these cpus and 
> which makes sense to me.
> 
> I am wondering if interrupts are disabled on crashing cpu or if 
> crashing cpu is inside die_nmi(), how would it stop/prevent delivery 
> of NMI IPI to other cpus.
> 
> Am I missing something obivious?

i wondered about that too. kexec should be as atomic as it can be - 
enabling interrupts only opens up a window for another crash (more 
memory corruption, etc. etc) to happen.

	Ingo

  reply	other threads:[~2008-02-06 22:54 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-02-06 19:25 Neil Horman
2008-02-06 19:40 ` Vivek Goyal
2008-02-06 20:12   ` Neil Horman
2008-02-06 20:21     ` H. Peter Anvin
2008-02-06 21:04       ` Neil Horman
2008-02-06 20:35     ` Vivek Goyal
2008-02-06 22:00 ` Ingo Molnar
2008-02-06 22:48   ` Vivek Goyal
2008-02-06 22:53     ` Ingo Molnar [this message]
2008-02-06 22:56     ` H. Peter Anvin
2008-02-06 23:36       ` Ingo Molnar
2008-02-06 23:50         ` Vivek Goyal
2008-02-07  0:31         ` Eric W. Biederman
2008-02-07  0:39           ` Ingo Molnar
2008-02-07  1:30             ` Eric W. Biederman
2008-02-07 12:17           ` Neil Horman
2008-02-07 12:24             ` Ingo Molnar
2008-02-07 20:37               ` Neil Horman
2008-02-08 16:14               ` Neil Horman
2008-02-08 16:45                 ` Vivek Goyal
2008-02-08 17:26                   ` Neil Horman
2008-02-12 21:08                   ` Neil Horman
2008-02-15 14:02                     ` Eric W. Biederman
2008-02-20 14:57                     ` Neil Horman
2008-02-08 16:54               ` Andi Kleen

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=20080206225355.GB4316@elte.hu \
    --to=mingo@elte.hu \
    --cc=hpa@zytor.com \
    --cc=kexec@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=nhorman@tuxdriver.com \
    --cc=tglx@linutronix.de \
    --cc=vgoyal@redhat.com \
    --subject='Re: [PATCH], issue EOI to APIC prior to calling crash_kexec in die_nmi path' \
    /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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).