public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: William Lee Irwin III <wli@holomorphy.com>
To: Keith Mannthey <kmannth@us.ibm.com>
Cc: "Martin J. Bligh" <mbligh@aracnet.com>,
	davem@redhat.com, habanero@us.ibm.com, haveblue@us.ibm.com,
	arjanv@redhat.com, pbadari@us.ibm.com,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	gh@us.ibm.com, johnstul@us.ltcfwd.linux.ibm, jamesclv@us.ibm.com,
	Andrew Morton <akpm@digeo.com>
Subject: Re: userspace irq =?unknown-8bit?Q?balance?= =?unknown-8bit?B?csKg?=
Date: Wed, 21 May 2003 12:19:29 -0700	[thread overview]
Message-ID: <20030521191929.GM8978@holomorphy.com> (raw)
In-Reply-To: <1053541725.16886.4711.camel@dyn9-47-17-180.beaverton.ibm.com>

On Wed, May 21, 2003 at 11:28:41AM -0700, Keith Mannthey wrote:
>   Here is the patch to turn kirqd into a config option if it is really
> needed.  I don't see why the noirqbalance functionality isn't enough for
> now.  Is there anything currently keeping a userspace irq balancer from
> working as 2.5 stands today?  It dosen't look like it to me.
> Keith      

This will do, though my preference is to make the code actually
understand what DESTMOD means in IO-APIC RTE's and what DFR means
for local APIC's instead of the rather ridiculous workarounds for
not doing so currently present.

There are a couple of obstacles to doing this:

(1) There is no true mechanism for correlating IO-APIC's with the
	APIC buses corresponding to a given cluster for APIC. The
	assumption is largely global addressibility a la xAPIC.
(2) DESTMOD is not a static property. Dynamically switching between
	logical and physical DESTMOD is fully possible and allows a
	somewhat greater variety of cpu sets to be handled on APIC.

I'd also like for there to be validity checking and explicit error
returns from the affinity setting API.

I'm not entirely happy with the genapic bits. Basically the APIC
is relatively well-standardized, and I'd rather the point-by-point
"this codepath must differ" abstraction be built atop such an APIC
manipulation "library" as it were. For instance:

(1) cpu wakeup via NMI is possible on ordinary machines; INIT merely
	cannot address cpus above the limit of APIC's physical
	addressing scheme (which is 4 bits) and so is required for
	pre-xAPIC machines with > 16 cpus or machines where only
	logical interrupts are routed across bus boundaries (be they
	APIC buses or memory buses).
(2) clustered hierarchical DFR is usable on single APIC bus boxen and
	xAPIC boxen with provisos for cluster ID's being misrouted.
(3) IO-APIC RTE formats are not magical properties of the machine;
	there is just logical and physical DESTMOD and representability
	of target cpu sets in the logical format and physical format
	and the dependence of the logical format on the cpus' DFR's.

These somewhat obvious observations imply to me that common code should
be used to manipulate the local APIC and IO-APIC and the machine-
specific code should choose its preferred modes when calling it, not
provide a private implementation or magic values to stuff into various
registers that specialize the APIC handling to a particular mode.

OTOH I don't see much (if any) chance of any of this happening since
"just barely works" suffices for most people's purposes and the
moderately large amount of work required to do all this ends up with
approximately zero functional difference in the end.

Thanks.


-- wli

  reply	other threads:[~2003-05-21 19:06 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-05-21 18:28 userspace irq balancer Keith Mannthey
2003-05-21 19:19 ` William Lee Irwin III [this message]
2003-05-21 23:39 ` Keith Mannthey
2003-05-21 23:42   ` userspace irq balancerB David S. Miller
2003-05-22  0:14   ` userspace irq =?unknown-8bit?Q?balance?= =?unknown-8bit?B?csKg?= William Lee Irwin III
2003-05-22  8:17   ` userspace irq balancer Arjan van de Ven

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=20030521191929.GM8978@holomorphy.com \
    --to=wli@holomorphy.com \
    --cc=akpm@digeo.com \
    --cc=arjanv@redhat.com \
    --cc=davem@redhat.com \
    --cc=gh@us.ibm.com \
    --cc=habanero@us.ibm.com \
    --cc=haveblue@us.ibm.com \
    --cc=jamesclv@us.ibm.com \
    --cc=johnstul@us.ltcfwd.linux.ibm \
    --cc=kmannth@us.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mbligh@aracnet.com \
    --cc=pbadari@us.ibm.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