RE: [PATCH v2 2/2] vsmp: Ignore IOAPIC IRQ affinity if possible

From: Shai Fultheim (Shai@xxxxxxxxxxx)
Date: Mon May 07 2012 - 20:53:58 EST


Ingo Molnar <mingo.kernel.org@xxxxxxxxx> wrote:
> * Ido Yariv <ido@xxxxxxxxxx> wrote:

> > @@ -51,6 +60,7 @@ void __init default_setup_apic_routing(void)
> > if (is_vsmp_box()) {
> > /* need to update phys_pkg_id */
> > apic->phys_pkg_id = apicid_phys_pkg_id;
> > + apic->vector_allocation_domain =
> fill_vector_allocation_domain;
> > }
> > }
>
> This is_vsmp_box() special case should really move into its own
> apic handler.
>
> Thanks,

Ingo,

vSMP Foundation virtualize multiple systems as one. The Guest OS is using the underlying hardware APIC driver, and therefore we must allow the various APIC drivers to kick in. When using vSMP Foundation APIC driver is selected by the kernel based on the hardware that is being virtualized, and that can be APIC, X2APIC phys, X2APIC cluster, summit, etc.

If we would to implement an APIC handler, we would not be able to use the native hardware APIC driver (unless we do an ugly hack).

The above optimization applies to all APIC drivers. It allow vSMP Foundation to route interrupts to the "closest" processor. For this we need to override the vector_allocation_domain of any APIC that selected (as noted, selection depends on real HW).

I hope this will allow you to ack our approach.

Regards,
Shai.
--
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/