From: ebiederm@xmission.com (Eric W. Biederman)
To: Neil Horman <nhorman@redhat.com>
Cc: Vivek Goyal <vgoyal@redhat.com>,
Neil Horman <nhorman@tuxdriver.com>,
Ben Woodard <woodard@redhat.com>,
Andi Kleen <andi@firstfloor.org>,
kexec@lists.infradead.org, linux-kernel@vger.kernel.org,
Andi Kleen <ak@suse.de>,
hbabu@us.ibm.com
Subject: Re: [PATCH] kexec: force x86_64 arches to boot kdump kernels on boot cpu
Date: Fri, 07 Dec 2007 11:46:21 -0700 [thread overview]
Message-ID: <m1tzmuqr5u.fsf@ebiederm.dsl.xmission.com> (raw)
In-Reply-To: <20071207155331.GC10389@hmsendeavour.rdu.redhat.com> (Neil Horman's message of "Fri, 7 Dec 2007 10:53:31 -0500")
Neil Horman <nhorman@redhat.com> writes:
>> Does LAPIC allow to disable a specific vector and not accept interrupts? I
>> don't think so. If a timer interrupt is broadcasted to every cpu I think
>> everybody will accept it (like broadcast IPI). That's why intelligence
>> is built into IOAPIC and direct interrupts to a cpu or group of cpu.
>>
> See disable_APIC_timer(). It seems to set the mask bit in the APIC_LVTT entry.
Yes. The local allows us to choose to accept ExtInt interrupts or not.
We can't do it per vector but we can do by interrupt delivery path.
External Interrupt.
External NMI.
Logical Apic Bus (Although I don't know if we can disable this one).
>
>> I am just trying to understand the functionality better. Can somebody help me
>> understand how do we make sure that same timer interrupt is not processed by
>> all cpus (assuming hypertransport is broadcasting it)?
>>
> I understand your desire, but clearly, something prevents it. Note our earlier
> conversation, this bit doesn't actually force a unicast of an interrupt packet,
> but simply masks the destination field. When set to zero, it simply means that
> the ht interrupt packet destination field is restricted to 4 bits rather than 8.
> So its not like when its set to zero we are guaranteed that it is forced to a
> single processor anyway. All setting this bit does is ensure that if any apics
> out on a system are addresed using an extended apic id, that interrupts can
> reach them. Thats why it was suggested that this bit only be forcibly set if
> bit 18 is also set.
We should only have a single cpus local apic configured to accept the
interrupt. Further it would not surprise me if there was some first
come first served logic with accepting the interrupt in there
somewhere.
>> Again for my understanding, I got few questions.
>>
>> - Why does nvidia choose not to broadcast the interrupts and still works
>> fine? Does that mean nvidia chipse will not work the extended cpu apic
>> ids?
>>
> It doesn't! When booting normally getting interrupts to apics that use 4 bit
> apic ids is sufficient since cpu0 is in that set, but if we crash on a cpu with
> an extended id, we hang.
Yes. This sounds like a BIOS bug at present. A chipset feature
residing in the CPUs was not enabled properly.
>> - Why do I need to broadcast the interrupts and not target specific cpus?
>>
> Its not a forced broadcast, its a mask on the apic id. The IOAPIC still
> addresses specific cpus.
This is a broadcast for legacy mode interrupts which don't have a cpu
destination field. Once we are running the timer through the ioapic
we have a destination field and the broadcast logic should not matter.
>> - If I am broadcasting interrupts, how do I make sure only one cpu
>> picks it up.
>>
> The IOAPIC handles that.
Well the local apics. If you are in ioapic mode and give the
cpus a choice of which cpu to deliver to it is a hardware anycast irq
transmission. That is the hardware magically picks one cpu of the
set of allow cpus to deliver the irq to. How that happens is
implementation specific.
Eric
next prev parent reply other threads:[~2007-12-07 18:49 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
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 [this message]
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=m1tzmuqr5u.fsf@ebiederm.dsl.xmission.com \
--to=ebiederm@xmission.com \
--cc=ak@suse.de \
--cc=andi@firstfloor.org \
--cc=hbabu@us.ibm.com \
--cc=kexec@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=nhorman@redhat.com \
--cc=nhorman@tuxdriver.com \
--cc=vgoyal@redhat.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®