mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Neil Horman <nhorman@redhat.com>
To: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Neil Horman <nhorman@redhat.com>,
	Ben Woodard <woodard@redhat.com>,
	Neil Horman <nhorman@tuxdriver.com>,
	kexec@lists.infradead.org, Andi Kleen <ak@suse.de>,
	linux-kernel@vger.kernel.org, hbabu@us.ibm.com,
	vgoyal@in.ibm.com
Subject: Re: [PATCH] kexec: force x86_64 arches to boot kdump kernels on boot cpu
Date: Tue, 27 Nov 2007 18:40:37 -0500	[thread overview]
Message-ID: <20071127234037.GA16756@hmsendeavour.rdu.redhat.com> (raw)
In-Reply-To: <m1r6ibia9v.fsf@ebiederm.dsl.xmission.com>

On Tue, Nov 27, 2007 at 03:38:52PM -0700, Eric W. Biederman wrote:
> Neil Horman <nhorman@redhat.com> writes:
> 
> >> 
> >> ..TIMER: vector=0x31 apic1=0 pin1=2 apic2=-1 pin2=-1
> 
> Ben, what chipset is this?
> 
> >
> > Ok, I think from what I understand of what we're reading here, the apic2 = -1
> > and pin2 = -1 indicate that the 8259 has no direct connection to any cpu, which
> > means that on shutdown disable_IO_APIC should take us into virtual wire mode.
> > As such enabling the APIC early in boot should fix us, but more consisely,
> > rewriting the entry in the IOAPIC to deliver int0 to the only running cpu should
> > accomplish the same goal for this problem.  Does that sound reasonable (at least
> > as a test to ensure we understand the problem) to everyone?
> 
> Close.  There are two options with virtual wire mode.  
> - Either the local apic is in virtual wire mode, and somehow the
>   legacy interrupts make it to the local cpu.
I assume this is the case if the ioapic is also in virtual wire mode and the
destination field for the appropriate interrupt(s) (the timer interrupt in this
case) is set to either physical mode with a destination id of the lapic for the
running cpu, or if it is set to logical mode and the destination id has the
corresponding bit for the running cpu set.  Is that right?

> - Or an ioapic is in virtual wire mode and the legacy interrupt
>   controller is connected to it.
> 
I thought we only had one ioapic in this system (Ben correct me if I'm wrong on
that please).  I thought the above printk told us that, because apic2 and pin2
are both -1, that means that the 8259 isn't physically connected to any cpu, and
instead is routed through apic 0, and asserts on pin 2 of that ioapic. 

> So I guess fundamentally for any SMP system that only supports the
> cpu being in local apic mode and only routes interrupts to the boot
> strap processor we could be in trouble.  That is what our current
> information about your system suggests.
> 
If that were the case, then we would need to support moving kexec boot to cpu0,
at least in some limited cases.  I've got a patch together that enables the
handshaking I was brainstorming earlier, which should allow an attempted jump to
cpu0 on a crash, with a fallback to booting on the crashing processor.  If we
wind up confirming the above case, then I'll post it.

> However most systems actually connect the i8254 PIC interrupt
Sorry, to split hairs here, but you mean the 8259 right?  Just want to be sure
I'm clear on whats going on.  I thought the 8254 was the external timer.

> controller to the ioapic in virtual wire mode.  As I recall the
> standard mapping is to ioapic 0, pin 0.  With ioapic 0, pin 2 being
> the timer interrupt (Possibly it is the other way around).
> 
> So as a test we could feed those values into ioapic_8259 and see
> if the kdump case works.  I believe we prefer putting the ioapic
> into virtual wire mode over putting the cpu into virtual wire
> mode.  We can only control which cpu receives the legacy interrupts if
> we are putting the ioapic in virtual wire mode.
> 
I'm sorry, I can't find ioapic_8259 defined anywhere.  Where is that supposed to
be?  Show me where its defined and I'll happily write the patch.


> It may also be an interesting test to just enable the timer for the
> ioapic in early boot, as you have suggested.  I don't have a clue what
> that will do.
> 
Unfortunately nothing.  We've tried using the local apic timer in a previous
test, and it resulted in no change, as did transitioning the cpu to the apic
timer via a call to switch_ipi_to_APIC_timer.  Its possible I did something
wrong however.

Currently I'm writing a patch that calls setup_ioapic_dest after we call
disable_IO_APIC.  Looking at the implementation, it appears that calling this
function should rewrite the irq routing table in the ioapic to deliver
interrupts to the set of online cpus, as defined by the TARGET_CPUS macro.  I
asusme that if the ioapic is in virtual wire mode from the call to
disablie_IO_APIC, then calling setup_ioapic_dest will force interrupts to be
delivered to the crashing cpu, as it should be the only bit set in the online
cpu mask.  Please feel free to poke holes in this idea.


Thanks & Regards
Neil

> Eric

-- 
/***************************************************
 *Neil Horman
 *Software Engineer
 *Red Hat, Inc.
 *nhorman@redhat.com
 *gpg keyid: 1024D / 0x92A74FA1
 *http://pgp.mit.edu
 ***************************************************/

  parent reply	other threads:[~2007-11-27 23:42 UTC|newest]

Thread overview: 100+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-11-27  1:47 Neil Horman
2007-11-27  4:12 ` Eric W. Biederman
2007-11-27 13:13   ` Neil Horman
2007-11-27 13:28     ` Eric W. Biederman
2007-11-27 13:45       ` Andi Kleen
2007-11-27 14:28         ` Neil Horman
2007-11-27 14:43           ` Andi Kleen
2007-11-27 14:48             ` Neil Horman
2007-11-27 15:24               ` Andi Kleen
2007-11-27 15:30               ` Eric W. Biederman
2007-11-27 16:45                 ` Neil Horman
2007-11-27 20:50                 ` Ben Woodard
2007-11-27 21:05                   ` Neil Horman
2007-11-27 22:38                     ` Eric W. Biederman
2007-11-27 23:15                       ` Ben Woodard
2007-11-28  0:15                         ` Eric W. Biederman
2007-11-27 23:40                       ` Neil Horman [this message]
2007-11-28  0:43                         ` Eric W. Biederman
2007-11-28 15:54                     ` Neil Horman
2007-11-27 14:56         ` Eric W. Biederman
2007-11-27 15:34           ` Neil Horman
2007-11-27 18:41           ` Ben Woodard
2007-11-27 19:42             ` Neil Horman
2007-11-27 20:00               ` Vivek Goyal
2007-11-27 20:52                 ` Neil Horman
2007-11-27 22:24                 ` Andi Kleen
2007-11-27 23:24                   ` Ben Woodard
2007-11-27 23:56                     ` Andi Kleen
2007-11-28 15:36                     ` Vivek Goyal
2007-11-28 16:02                       ` Neil Horman
2007-11-28 17:36                         ` Eric W. Biederman
2007-11-28 18:16                           ` Neil Horman
2007-11-28 19:05                         ` Vivek Goyal
2007-11-28 19:42                           ` Eric W. Biederman
2007-11-28 21:09                             ` Neil Horman
2007-11-28 23:27                               ` Eric W. Biederman
2007-11-30  2:16                             ` Ben Woodard
2007-11-30  2:54                               ` Eric W. Biederman
2007-11-30  8:59                                 ` Yinghai Lu
2007-11-30 14:35                                   ` Vivek Goyal
2007-11-30 14:32                                 ` Neil Horman
2007-11-30  2:12                           ` Ben Woodard
2007-11-30 14:42                             ` Vivek Goyal
2007-11-30 14:51                               ` Neil Horman
2007-12-06 21:39                                 ` Neil Horman
2007-12-06 22:11                                   ` Vivek Goyal
2007-12-07  0:10                                     ` Neil Horman
2007-12-07 14:39                                       ` Vivek Goyal
2007-12-07 14:53                                         ` Neil Horman
2007-12-07 15:16                                           ` Vivek Goyal
2007-12-07 15:53                                             ` Neil Horman
2007-12-07 18:46                                               ` Eric W. Biederman
2007-12-07  0:33                                     ` Eric W. Biederman
2007-12-07  2:04                                       ` Neil Horman
2007-12-07  8:50                                       ` Yinghai Lu
2007-12-07  9:22                                         ` Yinghai Lu
2007-12-07 14:21                                           ` Neil Horman
2007-12-07 17:58                                             ` Neil Horman
2007-12-07 19:19                                               ` yhlu
2007-12-07 20:13                                                 ` Neil Horman
2007-12-10 15:39                                               ` Neil Horman
2007-12-10 16:20                                                 ` Vivek Goyal
2007-12-11  1:17                                                 ` Eric W. Biederman
2007-12-11  1:08                                               ` Eric W. Biederman
2007-12-11  3:43                                                 ` Neil Horman
2007-12-11  4:48                                                   ` Eric W. Biederman
2007-12-11  6:31                                                     ` Yinghai Lu
2007-12-11 14:39                                                     ` Neil Horman
2007-12-11 15:29                                                       ` Eric W. Biederman
2007-12-11 18:00                                                         ` Yinghai Lu
2007-12-11 18:29                                                           ` Neil Horman
2007-12-11 18:45                                                             ` Yinghai Lu
2007-12-11 18:22                                                         ` Neil Horman
2007-12-11 18:46                                                           ` Eric W. Biederman
2007-12-11 19:24                                                             ` Neil Horman
2007-12-11 19:51                                                               ` Yinghai Lu
2007-12-11 20:59                                                                 ` Neil Horman
2007-12-12  0:16                                                                   ` Ben Woodard
2007-12-12  0:52                                                                     ` Neil Horman
2007-12-12  1:07                                                                       ` Yinghai Lu
2007-12-12  8:43                                                                   ` [PATCH] k8: Enable legacy irqs with extended cpu ids Eric W. Biederman
2007-12-12 14:21                                                                   ` [PATCH] kexec: force x86_64 arches to boot kdump kernels on boot cpu Andi Kleen
2007-12-12 15:55                                                                     ` Neil Horman
2007-12-12 16:07                                                                       ` Andi Kleen
2007-12-12 19:43                                                                         ` Eric W. Biederman
2007-12-12 20:22                                                                           ` Neil Horman
2007-12-12 21:32                                                                             ` Eric W. Biederman
2007-12-13 14:39                                                                               ` Neil Horman
2007-12-13 15:16                                                                                 ` Andi Kleen
2007-12-13 15:32                                                                                   ` Neil Horman
2007-12-17 11:38                                                                                     ` Neil Horman
2007-12-18  0:13                                                                                   ` Eric W. Biederman
2007-12-17 15:16                                                                                 ` Ingo Molnar
2007-12-17 15:47                                                                                   ` Neil Horman
2007-12-07 18:36                                             ` Eric W. Biederman
2007-12-07 18:48                                               ` Neil Horman
2007-11-27 13:53       ` Neil Horman
2007-11-27 10:55 ` Andi Kleen
2007-11-27 11:19   ` Eric W. Biederman
2007-11-27 13:28   ` Neil Horman

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=20071127234037.GA16756@hmsendeavour.rdu.redhat.com \
    --to=nhorman@redhat.com \
    --cc=ak@suse.de \
    --cc=ebiederm@xmission.com \
    --cc=hbabu@us.ibm.com \
    --cc=kexec@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nhorman@tuxdriver.com \
    --cc=vgoyal@in.ibm.com \
    --cc=woodard@redhat.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®