Re: [Xen-devel] [PATCH v4 0/2] xen/pci: Use APIC for MSIs when APIC virtualization is supported

From: Andrew Cooper
Date: Tue Dec 02 2014 - 19:25:58 EST

On 02/12/2014 20:48, Konrad Rzeszutek Wilk wrote:
> On Tue, Dec 02, 2014 at 03:19:11PM -0500, Boris Ostrovsky wrote:
>> Changes in v4:
>> * Added comment describing what we check for in pci_xen_init()
> Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>

Reviewed-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>

>> Changes in v3:
>> * Explicitly include asm/apic.h in arch/x86/pci/xen.c for !CONFIG_SMP.
>> Changes in v2:
>> * New version of cpuid.h file from Xen tree (with a couple of style adjustments)
>> * Whitespace cleanup
>> Currently HVM guests handle MSI interrupts using pirqs/event channels, allowing
>> us to not issue APIC accesses that result in somewhat expensive VMEXITs. When
>> hardware supports APIC virtualization we don't need to use pirqs anymore
>> since now guest's APIC accesses can be handled by the processor itself.
>> There are two patches in this series:
>> 1. Move setting of x86_msi ops to a later point. The reason for doing so is that
>> we currently decide whether or not to use pirqs before kernel had a chance to
>> see whether it should be using x2APIC instead of plain APIC. Since hardware may
>> virtualize either or both of those two we can only make pirqs vs. APIC selection
>> after kernel has settled down on which APIC version it will use. (Note that
>> currently x2APIC is not used by HVM guests so technically this patch is not
>> necessary. However, it probably makes sense to apply it now to avoid
>> forgetting to do it when we enable x2APIC).
>> 2. Set x86_msi ops to use pirqs only when APIC virtualization is not available.
>> The commit message describes performance improvements that this change brings.
>> Boris Ostrovsky (2):
>> xen/pci: Defer initialization of MSI ops on HVM guests until after
>> x2APIC has been set up
>> xen/pci: Use APIC directly when APIC virtualization is supported by
>> hardware
>> arch/x86/include/asm/xen/cpuid.h | 91 ++++++++++++++++++++++++++++++++++++++++
>> arch/x86/pci/xen.c | 31 +++++++++++++-
>> 2 files changed, 120 insertions(+), 2 deletions(-)
>> create mode 100644 arch/x86/include/asm/xen/cpuid.h
>> --
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxx

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at