From: ebiederm@xmission.com (Eric W. Biederman)
To: Jeremy Fitzhardinge <jeremy@goop.org>
Cc: Yinghai Lu <yhlu.kernel@gmail.com>, Ingo Molnar <mingo@elte.hu>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: TARGET_CPUS in assign_irq_vector
Date: Wed, 10 Sep 2008 13:07:27 -0700 [thread overview]
Message-ID: <m1vdx3hiio.fsf@frodo.ebiederm.org> (raw)
In-Reply-To: <48C8238D.4080803@goop.org> (Jeremy Fitzhardinge's message of "Wed, 10 Sep 2008 12:44:13 -0700")
Jeremy Fitzhardinge <jeremy@goop.org> writes:
> Hm. That would work OK for fully paravirtualized domains, which have no
> direct access to real hardware in any form (well, there's pci
> passthough, but interrupts are all thoroughly massaged into event channels).
>
> But for dom0, the kernel handles interrupts weird hybrid mode. The
> interrupts themselves are delivered via event channels rather than via a
> local apic, but the IO APIC is still under the kernel's control, and is
> responsible for poking (Xen-allocated) vectors into it. This only
> applies to physical irq event channels; there's no need to have vectors
> for purely software event channels like interdomain, IPI and timers.
> This is further complicated by the fact that the dom0 kernel parses the
> ACPI and MPTABLES to find out about IO APICs, so the existing APIC
> subsystem is already involved. I need to work out how'd I'd hook all
> this together with a minimum of mess.
In that case. Having the information on the event channel tell you
which cpu and which vector were received is sufficient. Then you
can call into do_IRQ() with the information. Unless ack_irq()
and friends are enough different at the local apic level to cause
a challenge.
For the reset of the event channel interrupts you simply want to
dispatch the irq directly.
Eric
prev parent reply other threads:[~2008-09-10 20:15 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-09-09 22:30 TARGET_CPUS in assign_irq_vector Jeremy Fitzhardinge
2008-09-09 22:54 ` Yinghai Lu
2008-09-09 23:46 ` Jeremy Fitzhardinge
2008-09-10 0:26 ` Yinghai Lu
2008-09-10 0:50 ` Jeremy Fitzhardinge
2008-09-10 1:24 ` Yinghai Lu
2008-09-10 6:45 ` Eric W. Biederman
2008-09-10 19:44 ` Jeremy Fitzhardinge
2008-09-10 20:07 ` Eric W. Biederman [this message]
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=m1vdx3hiio.fsf@frodo.ebiederm.org \
--to=ebiederm@xmission.com \
--cc=jeremy@goop.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=yhlu.kernel@gmail.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 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.