RE: [v5 00/19] Add VT-d Posted-Interrupts support

From: Wu, Feng
Date: Mon Jul 13 2015 - 21:09:58 EST




> -----Original Message-----
> From: Eric Auger [mailto:eric.auger@xxxxxxxxxx]
> Sent: Monday, July 13, 2015 9:19 PM
> To: Wu, Feng; kvm@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx
> Cc: pbonzini@xxxxxxxxxx; alex.williamson@xxxxxxxxxx; joro@xxxxxxxxxx
> Subject: Re: [v5 00/19] Add VT-d Posted-Interrupts support
>
> Hi Feng,
> On 07/13/2015 11:47 AM, Feng Wu wrote:
> > VT-d Posted-Interrupts is an enhancement to CPU side Posted-Interrupt.
> > With VT-d Posted-Interrupts enabled, external interrupts from
> > direct-assigned devices can be delivered to guests without VMM
> > intervention when guest is running in non-root mode.
> >
> > You can find the VT-d Posted-Interrtups Spec. in the following URL:
> >
> http://www.intel.com/content/www/us/en/intelligent-systems/intel-technolog
> y/vt-directed-io-spec.html
> >
> > This series was part of
> http://thread.gmane.org/gmane.linux.kernel.iommu/7708. To make things
> clear, send out IOMMU part here.
> >
> > This patch-set is based on the lastest x86/apic branch of tip tree.
> >
> > Divide the whole series which contain multiple components into three parts:
> > - Prerequisite changes to irq subsystem (already merged)
> > - IOMMU part (already merged)
> > - KVM and VFIO parts (this series)
> >
> > v5:
> > - Based on Alex and Eric's irq bypass manager:
> > https://lkml.org/lkml/2015/7/10/663
> > - Reuse some common patch from Eric
>
> A comment about the overall structure. Previously you prefered to have 2
> separate series, one usable by both of us and one with my forwarding
> stuff. Why did you change your mind?

I didn't change my mind, since alex sent out the latest irq bypass manger
patch, in which, some callbacks are renamed and some are changed to
optional, I feel there may need some changes to your patch below:
[RFC v2 0/6] IRQ bypass manager and irqfd consumer

So I integrate it here, sorry for the inconvenience. Could you please send
Out a new version of this patch-set, then I can follow it. Thanks a lot!

Thanks,
Feng

>
> Best Regards
>
> Eric
> >
> > Eric Auger (3):
> > KVM: create kvm_irqfd.h
> > KVM: eventfd: add irq bypass information in irqfd
> > KVM: eventfd: add irq bypass consumer management
> >
> > Feng Wu (16):
> > KVM: Extend struct pi_desc for VT-d Posted-Interrupts
> > KVM: Add some helper functions for Posted-Interrupts
> > KVM: Define a new interface kvm_intr_is_single_vcpu()
> > KVM: Get Posted-Interrupts descriptor address from struct kvm_vcpu
> > KVM: Add interfaces to control PI outside vmx
> > KVM: Make struct kvm_irq_routing_table accessible
> > KVM: make kvm_set_msi_irq() public
> > vfio: Select IRQ_BYPASS_MANAGER for vfio PCI devices
> > vfio: Register/unregister irq_bypass_producer
> > KVM, x86: Select IRQ_BYPASS_MANAGER for KVM_INTEL
> > KVM: x86: Update IRTE for posted-interrupts
> > KVM: x86: Add arch specific routines for irqbypass manager
> > KVM: Add an arch specific hooks in 'struct kvm_kernel_irqfd'
> > KVM: Update Posted-Interrupts Descriptor when vCPU is preempted
> > KVM: Update Posted-Interrupts Descriptor when vCPU is blocked
> > KVM: Warn if 'SN' is set during posting interrupts by software
> >
> > arch/x86/include/asm/kvm_host.h | 15 ++
> > arch/x86/kvm/Kconfig | 1 +
> > arch/x86/kvm/irq_comm.c | 28 +++-
> > arch/x86/kvm/vmx.c | 278
> +++++++++++++++++++++++++++++++++++-
> > arch/x86/kvm/x86.c | 160 +++++++++++++++++++--
> > drivers/vfio/pci/Kconfig | 1 +
> > drivers/vfio/pci/vfio_pci_intrs.c | 19 +++
> > drivers/vfio/pci/vfio_pci_private.h | 2 +
> > include/linux/kvm_host.h | 23 +++
> > include/linux/kvm_irqfd.h | 74 ++++++++++
> > virt/kvm/eventfd.c | 115 ++++++---------
> > virt/kvm/irqchip.c | 11 --
> > virt/kvm/kvm_main.c | 3 +
> > 13 files changed, 632 insertions(+), 98 deletions(-)
> > create mode 100644 include/linux/kvm_irqfd.h
> >

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