On Mon, May 25, 2009 at 02:30:05PM +0800, Sheng Yang wrote: > On Monday 25 May 2009 14:13:23 Gleb Natapov wrote: > > On Mon, May 25, 2009 at 02:08:26PM +0800, Sheng Yang wrote: > > > On Friday 22 May 2009 01:37:53 Gleb Natapov wrote: > > > > This is implementation of x2apic for KVM that I wrote a while ago. > > > > Unfortunately there is no guest that can take advantage of it since > > > > Linux doesn't (yet?) use x2apic if interrupt remapping is not enabled > > > > and I don't feel like implement interrupt remapping device :) > > > > > > > > Re-based to latest kvm tree for your viewing pleasure and feedback. > > > > > > Yeah... x2apic is for interrupt remapping, and interrupt remapping is for > > > VT-d engine. So if we don't want to virtualize VT-d engine and interrupt > > > remapping, x2apic is useless for the guest... And VT-d engine(and related > > > things) virtualization is far from our scope now... > > > > Can you explain why "x2apic is for interrupt remapping"? I can understand > > why interrupt remapping is needed to use x2apic in certain circumstances > > (apic ids > 256). x2apic has better virtualizable interface and that > > is why we want to emulate it. Can you name one technical reason why it > > can't be done in a context of KVM? > > As you know, x2apic is for apic id > 256. So, at least on the real machine, if > there is no interrupt remapping, x2apic almost can't take much advantage, > because IOAPIC and MSI/MSI-X delivery still using 8bit apic id, so any > external interrupt can't benefit from it(though IPI can benefit some, and > maybe some gain from MSR rather than MMIO). And this is the main purpose for > x2apic, that's why Linux kernel limited x2apic using with interrupt remapping. > > I am not sure the things looks like in the context of KVM. I think mostly even > you virtualize it, it can't replace lapic, for guest won't use it(I am not > sure about the Windows). Can you explain more detail? KVM will expose x2apic, but will use apic ids < 256. Linux has to be changed to use x2apic if it runs as a guest. Windows, when running as a guest, partially paravirtualize lapic by using MSRs to access frequently used registers. The MSR interface Windows uses is very similar to x2apic by the way and KVM will support it too. -- Gleb. -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html