From: ebiederm@xmission.com (Eric W. Biederman)
To: Ingo Molnar <mingo@elte.hu>
Cc: Jeremy Fitzhardinge <jeremy@goop.org>,
Thomas Gleixner <tglx@linutronix.de>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: Should irq_chip->mask disable percpu interrupts to all cpus, or just to this cpu?
Date: Wed, 24 Sep 2008 02:54:16 -0700 [thread overview]
Message-ID: <m18wthna2f.fsf@frodo.ebiederm.org> (raw)
In-Reply-To: <20080924084558.GD5576@elte.hu> (Ingo Molnar's message of "Wed, 24 Sep 2008 10:45:58 +0200")
Ingo Molnar <mingo@elte.hu> writes:
> * Jeremy Fitzhardinge <jeremy@goop.org> wrote:
>
>> Hi,
>>
>> I'm reworking Xen's interrupt handling to isolate it a bit from the
>> workings of the apic-based code, as Eric suggested a while back.
>>
>> As I've mentioned before, Xen represents interrupts as event channels.
>> There are two major classes of event channels: per-cpu and, erm, not
>> percpu. Per-cpu event channels are for things like timers and IPI
>> function calls which are inherently per-cpu; it's meaningless to
>> consider, for example, migrating them from cpu to cpu. I guess
>> they're analogous to the the local apic vectors.
>>
>> (Non-percpu event channels can be bound to a particular cpu, and
>> rebound at will; I'm not worried about them here.)
>>
>> Previously I allocated an irq per percpu event channel per cpu. This
>> was pretty wasteful, since I need about 5-6 of them per cpu, so the
>> number of interrupts increases quite quickly as cpus does. There's no
>> deep problem with that, but it gets fairly ugly in /proc/interrupts,
>> and there's some tricky corners to manage in suspend/resume.
Every high performance device wants one irq per cpu.
So if it gets ugly in /proc/interrupts we should look at fixing
/proc/interrupts.
It looked like in Xen each of those interrupts were delivered
to different event channels. Did I misread that code?
I really hate the notion of sharing a single irq_desc across
multiple cpus as a preferred mode of operation. As NUMA comes
into play it guarantees we will have cross cpu memory fetches
on a fast path for irq handling.
Other than the beautiful way we print things in /proc/interrupts
IRQ_PER_CPU feels like a really bad idea. Especially in that
it enshrines the nasty per cpu irq counters that scale horribly.
Eric
next prev parent reply other threads:[~2008-09-24 10:05 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-09-23 20:02 Should irq_chip->mask disable percpu interrupts to all cpus, or just to this cpu? Jeremy Fitzhardinge
2008-09-24 8:45 ` Ingo Molnar
2008-09-24 9:54 ` Eric W. Biederman [this message]
2008-09-24 10:18 ` Ingo Molnar
2008-09-24 18:33 ` Jeremy Fitzhardinge
2008-09-24 19:34 ` Eric W. Biederman
2008-09-27 19:44 ` Ingo Molnar
2008-09-28 4:58 ` Jeremy Fitzhardinge
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=m18wthna2f.fsf@frodo.ebiederm.org \
--to=ebiederm@xmission.com \
--cc=jeremy@goop.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=tglx@linutronix.de \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.