Messages in this thread | | | Date | Wed, 10 Sep 2008 12:44:13 -0700 | From | Jeremy Fitzhardinge <> | Subject | Re: TARGET_CPUS in assign_irq_vector |
| |
Eric W. Biederman wrote: > Jeremy Fitzhardinge <jeremy@goop.org> writes: > > >> 3) give up because the idea is fundamentally ill-conceived, or 4) >> something else? >> > > Yes. > > When working with event channels you should not have any > truck with vectors and you should not call the architecture > specific do_IRQ().
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.
J
| |