mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Thomas Gleixner <tglx@linutronix.de>
To: Dimitri Sivanich <sivanich@sgi.com>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>,
	Arjan van de Ven <arjan@infradead.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@elte.hu>,
	Suresh Siddha <suresh.b.siddha@intel.com>,
	Yinghai Lu <yinghai@kernel.org>,
	LKML <linux-kernel@vger.kernel.org>,
	Jesse Barnes <jbarnes@virtuousgeek.org>,
	David Miller <davem@davemloft.net>,
	Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>
Subject: Re: [PATCH v6] x86/apic: limit irq affinity
Date: Tue, 24 Nov 2009 22:51:32 +0100 (CET)	[thread overview]
Message-ID: <alpine.LFD.2.00.0911242243160.24119@localhost.localdomain> (raw)
In-Reply-To: <20091124214121.GA15182@sgi.com>

On Tue, 24 Nov 2009, Dimitri Sivanich wrote:

> On Tue, Nov 24, 2009 at 09:41:18AM -0800, Eric W. Biederman wrote:
> > As for the UV code, what we are looking at is a fundamental irq
> > routing property.  Those irqs cannot be routed to some cpus.  That is
> > something the code that sets up the routes needs to be aware of.
> 
> Correct.  We can't allow an interrupt to be routed to an invalid node.
> 
> > Dimitri could you put your the extra code in assign_irq_vector instead
> > of in the callers of assign_irq_vector?  Since the probably is not
> > likely to stay unique we probably want to put the information you base
> > things on in struct irq_desc, but the logic I seems to live best in
> > in assign_irq_vector.
>
> So you're saying continue to use the node value in irq_desc, or add
> a cpumask there (which will add some size to that structure)?  I'll
> have to take another look at assign_irq_vector, but as things are
> currently structured, we don't return any sort of valid cpumask that
> we'd need for further processing in the caller functions.  One would
> need to pass that back or store that cpumask someplace, like
> irq_desc?

Please do not put anything complex into x86 code at all. Such designs
are likely to happen on other architectures and as I said before we
want to have

1) the decision function what's valid and not in the generic code

2) a way to expose that information as part of the irq interface to
   user space.

So what's wrong with a per irq_chip function which returns the cpumask
which is valid for irq N ?

That function would be called to check the affinity mask in
set_irq_affinity and to dump the mask to /proc/irq/N/possible_cpus or
whatever name we agree on.

That way we don't have to worry about where in the x86 code the
decision should reside as you simply would always get valid masks from
the core code.

That just works and is neither restricted to UV nor to x86.

Thanks,

	tglx

  reply	other threads:[~2009-11-24 21:54 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-11-20 21:11 Dimitri Sivanich
2009-11-21 18:49 ` Eric W. Biederman
2009-11-22  1:14   ` Dimitri Sivanich
2009-11-24 13:20     ` Thomas Gleixner
2009-11-24 13:39       ` Peter Zijlstra
2009-11-24 13:55         ` Thomas Gleixner
2009-11-24 14:50           ` Arjan van de Ven
2009-11-24 17:41             ` Eric W. Biederman
2009-11-24 18:00               ` Peter P Waskiewicz Jr
2009-11-24 18:20               ` Ingo Molnar
2009-11-24 18:27                 ` Yinghai Lu
2009-11-24 18:32                   ` Peter Zijlstra
2009-11-24 18:59                     ` Yinghai Lu
2009-11-24 21:41               ` Dimitri Sivanich
2009-11-24 21:51                 ` Thomas Gleixner [this message]
2009-11-24 23:06                   ` Eric W. Biederman
2009-11-25  1:23                     ` Thomas Gleixner
2009-11-24 22:42                 ` Eric W. Biederman
2009-11-25 15:40               ` Arjan van de Ven
2009-12-03 16:50                 ` Dimitri Sivanich
2009-12-03 16:53                   ` Waskiewicz Jr, Peter P
2009-12-03 17:01                     ` Dimitri Sivanich
2009-12-03 17:07                       ` Waskiewicz Jr, Peter P
2009-12-03 17:19                         ` Dimitri Sivanich
2009-12-03 18:50                           ` Waskiewicz Jr, Peter P
2009-12-04 16:42                             ` Dimitri Sivanich
2009-12-04 21:17                               ` Peter P Waskiewicz Jr
2009-12-04 23:12                                 ` Eric W. Biederman
2009-12-05 10:38                                   ` Peter P Waskiewicz Jr
2009-12-07 13:44                                   ` Dimitri Sivanich
2009-12-07 13:39                                 ` Dimitri Sivanich
2009-12-07 23:28                                   ` Peter P Waskiewicz Jr
2009-12-08 15:04                                     ` Dimitri Sivanich
2009-12-11  3:16                 ` david

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=alpine.LFD.2.00.0911242243160.24119@localhost.localdomain \
    --to=tglx@linutronix.de \
    --cc=arjan@infradead.org \
    --cc=davem@davemloft.net \
    --cc=ebiederm@xmission.com \
    --cc=hpa@zytor.com \
    --cc=jbarnes@virtuousgeek.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=peter.p.waskiewicz.jr@intel.com \
    --cc=peterz@infradead.org \
    --cc=sivanich@sgi.com \
    --cc=suresh.b.siddha@intel.com \
    --cc=yinghai@kernel.org \
    /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®