Re: [PATCH] x86: enable x2apic early at the first point

From: Ingo Molnar
Date: Fri Feb 20 2009 - 08:00:00 EST



* Gleb Natapov <gleb@xxxxxxxxxx> wrote:

> On Fri, Feb 20, 2009 at 12:06:51PM +0100, Ingo Molnar wrote:
> > > > > If you'll revert my patch it will not be possible to use
> > > > > x2apic in KVM (at least without KVM implementing interrupt
> > > > > remapping which is unneeded otherwise) and x2apic interface is
> > > > > much better for vitalization. Instead of reverting the patch
> > > > > it will be better to add check if x2apic can be used without
> > > > > intr-remmaping (all CPUs belong to cluster 0) or allow
> > > > > enabling of x2apic without IR if running as a guest.
> > > >
> > > > yep, that would be required - because your patch can break real
> > > > systems right now. Mind sending me a fix for it?
> > > >
> > > > I've applied Yinghai's fix as well, so please base it on latest
> > > > tip:master.
> > > >
> > > OK. Will send next week.
> >
> > ok, that's too long of a breakage window - i'll revert it then,
> > please send a new version once you have it.
> >
>
> What approach you actually prefer? Enable x2apic without
> intr-remapping only when running in KVM, or even if running on
> real HW but all CPUs are in cluster 0? If former then below is
> updated patch (tested only in KVM) if later then it's
> definitely for next week :)

The latter would be the ideal solution - i.e. next week :)

x2apic is a rare feature, and the more exposure we give it the
more tested it becomes. It's also obviously good for general
code structure if core CPU features are separated from
chipset/iommu features.

Plus, x2apic accesses could actually be faster than UC accesses
to the lapic, so whenever we can we should enter x2apic mode -
even if intr-remap is not turned on (because not needed).

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/