[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 0/4] Expose HW APIC virtualization support to HVM guests
Boris Ostrovsky wrote on 2014-03-11: > > Version 2: > * Added ability to specify hypervisor CPUID leaves in config file (this > requires > new sysctl) > * Use 2 bits to indicate what is supported --- one for APIC memory access and > the > other for x2APIC. Still not sure whether virtual interrupt delivery should > be > exposed as well. > > > HVM guests running on HW that supports HW APIC virtualization features > (APIC-register virtualization, virtual interrupt delivery, etc) may > want to use APIC instead of hvm_pirqs. Since we are not guaranteed to > have these features on VMX (for example, there is a boot option to > turn it off) and there is no such support on SVM we need to make the > guest aware that its APIC accesses may not be so bad. > > CPUID seems to be a good way to provide this info to the guest. > > Having a guest switch to APIC shows fairly good impact on number of > VMEXITs. For example, with a pass-through NIC, netperf sees almost > half as many. Here are results for 'xentrace -e 0x00083fff -c 2 -D -T 2' > > (The guest here essentially turned off XENFEAT_hvm_pirqs but we may > want to use APIC for MSI interrupts only and leave pirqs for gsi). > > > [root@ovs105 virt]# cat orig |xentrace_format > ~/xen/tools/xentrace/formats | awk '{print $5}' | sort | uniq -c > 94 cpu_change > 13944 HLT > 26341 INJ_VIRQ > 12054 INTR > 30784 INTR_WINDOW > 10126 TRAP > 124783 VMENTRY > 124782 VMEXIT > 59217 VMMCALL > 35 wrap_buffer > > [root@ovs105 virt]# cat apicv |xentrace_format > ~/xen/tools/xentrace/formats | awk '{print $5}' | sort | uniq -c > 49 cpu_change 16157 HLT 31 INJ_VIRQ 10652 INTR 38 INTR_WINDOW 10 NPF > 10286 TRAP > 71269 VMENTRY > 71269 VMEXIT > 34129 VMMCALL > 15 wrap_buffer > The difference is even larger when the guest is busy. > > These results are in line with what has been reported for KVM. For > example > http://events.linuxfoundation.org/sites/events/files/cojp13_natapov.pdf > http://www.linuxplumbersconf.org/2012/wp-content/uploads/2012/09/2012-lp > c-virt-intel-vt-feat-nakajima.pdf > > I am also not sure whether (cpu_has_vmx_apic_reg_virt & > cpu_has_vmx_virtualize_x2apic_mode) is sufficient to declare full HW > APIC support to a guest. The tests show ~95K VMEXITs when virtual The former is enough. Hardware has APICv must have the virtualize x2apic too. > interrupt delivery and posted interrupts are turned off so there > appears to still be some benefit. I suppose we can use another CPUID > bit for these two (although I am not particularly eager to do this). The three features are coexisting. I think you can use one bit to show them. > > Boris Ostrovsky (4): > xen/libxc: Allow changes to hypervisor CPUID leaf from config file > x86/hvm: Revert 80ecb40362365ba77e68fc609de8bd3b7208ae19 > x86/hvm: Add HVM-specific hypervisor CPUID leaf > x86/hvm: Indicate avaliability of HW support of APIC virtualization > to HVM guests > tools/libxc/xc_cpuid_x86.c | 23 ++++++++++++++++++++++- > tools/libxc/xc_misc.c | 18 ++++++++++++++++++ > tools/libxc/xenctrl.h | 2 ++ > xen/arch/x86/domain.c | 19 ++++++++++++++++--- > xen/arch/x86/hvm/hvm.c | 16 ++++++++++++++++ > xen/arch/x86/hvm/vmx/vmx.c | 12 ++++++++++++ > xen/arch/x86/sysctl.c | 17 +++++++++++++++++ > xen/arch/x86/traps.c | 18 +++++++++--------- > xen/include/asm-x86/domain.h | 7 +++++++ > xen/include/asm-x86/hvm/hvm.h | 7 +++++++ > xen/include/public/arch-x86/cpuid.h | 10 ++++++++++ > xen/include/public/sysctl.h | 18 ++++++++++++++++++ > 12 files changed, 154 insertions(+), 13 deletions(-) Best regards, Yang _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |