Re: TARGET_CPUS in assign_irq_vector

From: Jeremy Fitzhardinge
Date: Wed Sep 10 2008 - 15:44:25 EST


Eric W. Biederman wrote:
> Jeremy Fitzhardinge <jeremy@xxxxxxxx> 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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/