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

From: Ingo Molnar
Date: Wed May 09 2012 - 05:18:30 EST



* Shai Fultheim (Shai@xxxxxxxxxxx) <Shai@xxxxxxxxxxx> wrote:

> 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).

If you need a callback on that level then there's a cleaner
mechanism than open-coding vsmp handlers into generic code:

- create a new platform callback in x86_platform_ops
- call it from apic_64.c if set
- fill in the vSMP specific handler from the vSMP init code

Thanks,

Ingo
--
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/