mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
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

  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®