From: William Lee Irwin III <wli@holomorphy.com>
To: "Protasevich, Natalie" <Natalie.Protasevich@UNISYS.com>
Cc: "'Christoph Hellwig'" <hch@infradead.org>,
"'James Cleverdon'" <jamesclv@us.ibm.com>,
"'Pallipadi, Venkatesh'" <venkatesh.pallipadi@intel.com>,
"'Linux Kernel'" <linux-kernel@vger.kernel.org>,
"'Martin Bligh'" <mbligh@us.ibm.com>,
"'John Stultz'" <johnstul@us.ibm.com>,
"'Nakajima, Jun'" <jun.nakajima@intel.com>,
"'Mallick, Asit K'" <asit.k.mallick@intel.com>,
"'Saxena, Sunil'" <sunil.saxena@intel.com>,
"Van Maren, Kevin" <kevin.vanmaren@UNISYS.com>,
"'Andi Kleen'" <ak@suse.de>, "'Hubert Mantel'" <mantel@suse.de>
Subject: Re: [PATCH][2.4] generic cluster APIC support for systems with m ore than 8 CPUs
Date: Fri, 20 Dec 2002 15:33:39 -0800 [thread overview]
Message-ID: <20021220233339.GF9704@holomorphy.com> (raw)
In-Reply-To: <3FAD1088D4556046AEC48D80B47B478C1AEC73@usslc-exch-4.slc.unisys.com>
On Fri, Dec 20, 2002 at 04:57:28PM -0600, Protasevich, Natalie wrote:
> Briefly, our ES7000 boxes are non-NUMA, but use clustered APICs (logical
> with Cascades, and physical with Gallatins/Fosters). Our code is pretty much
> within the clustered APIC code (when both physical and logical are
> implemented). Even with NUMA that is forced in clustered APIC case, we are
> usually OK as a single-node case.
Okay, so nothing wild like a non-APIC interrupt controller is going on
here. (c.f. Voyager for an example).
On Fri, Dec 20, 2002 at 04:57:28PM -0600, Protasevich, Natalie wrote:
> There are only a few problems with porting the Linux kernel to the ES7000:
> we use 8-bit APIC IDs - this makes us use APIC_LDR instead of
> APIC_ID throughout the code;
> we have special RTE destination values on IO-APIC - the "if" in the
> programming IO-APIC line code;
> we introduce severe IRQ override case - we remap ISA interrupts to a
> different interrupt range (all the "i < 16" clauses).
> Also, I usually have to add things like XTPR mechanism for Fosters/Gallatins
> and disable conventional IRQ balancing, since our IO-APIC doesn't work this
> way... (All of the above is in the SuSE code base).
Venkatesh, do you think you can handle these generically? Aside from
machine-specific configurations this all looks like perfectly generic.
If it's publicly discussable, what's the difference wrt. the IO-APIC?
IIRC NUMA-Q had a similar issue, where flat logical destinations were
being programmed into the IO-APIC by the IRQ balancing code, but the
NUMA-Q IO-APIC was programmed to accept physical destinations in the
RTE's via the DESTMOD bit, using physical broadcast by default, and
achieving node-locality as physical destinations may not refer to
off-node cpus. There probably isn't an issue of node locality, but even
if the IO-APIC's are programmed for logical DESTMOD it won't work with
the flat logical gunk the original IRQ balance patch programmed up.
>From 2.5.52 include/asm-i386/smp.h:
#ifdef CONFIG_CLUSTERED_APIC
#define INT_DELIVERY_MODE 0 /* physical delivery on LOCAL quad */
#else
#define INT_DELIVERY_MODE 1 /* logical delivery broadcast to all procs */
#endif
>From 2.5.52 arch/i386/mach-generic/mach_apic.h:
#ifdef CONFIG_SMP
#define TARGET_CPUS (clustered_apic_mode ? 0xf : cpu_online_map)
#else
#define TARGET_CPUS 0x01
#endif
And while setting up the RTE's in io_apic.c:
entry.delivery_mode = dest_LowestPrio;
entry.dest_mode = INT_DELIVERY_MODE;
entry.mask = 0; /* enable IRQ */
entry.dest.logical.logical_dest = TARGET_CPUS;
... which is rather blatant abuse of entry.dest.logical.logical_dest
for the NUMA-Q case, but never mind that.
On Fri, Dec 20, 2002 at 04:57:28PM -0600, Protasevich, Natalie wrote:
> I worked with the SuSE tree which has clustered code (at the first glance)
> close to the patch being discussed here.
> The 2.5 tree gives us a benefit of the subarch that will accomodate
> (hopefully) our special cases.
> But I may need to add more hooks.
It'd be great to have the APIC interface general enough to handle all
these machines.
Bill
next prev parent reply other threads:[~2002-12-20 23:26 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-12-20 22:57 Protasevich, Natalie
2002-12-20 23:33 ` William Lee Irwin III [this message]
2002-12-25 21:41 ` Alan Cox
-- strict thread matches above, loose matches on Subject: below --
2003-01-06 18:58 Protasevich, Natalie
2003-01-08 14:53 ` Alan Cox
2002-12-26 2:18 Van Maren, Kevin
2002-12-27 23:38 ` Alan Cox
2002-12-26 1:14 Protasevich, Natalie
2002-12-27 23:39 ` Alan Cox
2002-12-23 7:29 Kamble, Nitin A
2002-12-23 7:52 ` Martin J. Bligh
2002-12-23 9:46 ` Zwane Mwaikambo
2002-12-23 15:30 ` Martin J. Bligh
[not found] <3FAD1088D4556046AEC48D80B47B478C1AEC75@usslc-exch-4.slc.unisys. com>
2002-12-22 20:41 ` Protasevich, Natalie
2002-12-22 20:52 ` Martin J. Bligh
2002-12-22 6:19 Pallipadi, Venkatesh
2002-12-22 6:39 ` William Lee Irwin III
2002-12-22 17:21 ` Martin J. Bligh
2002-12-22 17:23 ` Martin J. Bligh
2002-12-22 4:00 Pallipadi, Venkatesh
2002-12-22 4:05 ` Martin J. Bligh
[not found] <3FAD1088D4556046AEC48D80B47B478C0101F55D@usslc-exch-4.slc.unisy s.com>
2002-12-20 15:46 ` Van Maren, Kevin
2002-12-20 16:30 ` Martin J. Bligh
2002-12-20 17:16 ` William Lee Irwin III
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=20021220233339.GF9704@holomorphy.com \
--to=wli@holomorphy.com \
--cc=Natalie.Protasevich@UNISYS.com \
--cc=ak@suse.de \
--cc=asit.k.mallick@intel.com \
--cc=hch@infradead.org \
--cc=jamesclv@us.ibm.com \
--cc=johnstul@us.ibm.com \
--cc=jun.nakajima@intel.com \
--cc=kevin.vanmaren@UNISYS.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mantel@suse.de \
--cc=mbligh@us.ibm.com \
--cc=sunil.saxena@intel.com \
--cc=venkatesh.pallipadi@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 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®