All of lore.kernel.org
 help / color / mirror / Atom feed
* [v4 00/16] Add VT-d Posted-Interrupts support
@ 2015-06-11 10:51 Feng Wu
  2015-06-11 10:51 ` [v4 01/16] KVM: Extend struct pi_desc for VT-d Posted-Interrupts Feng Wu
                   ` (15 more replies)
  0 siblings, 16 replies; 59+ messages in thread
From: Feng Wu @ 2015-06-11 10:51 UTC (permalink / raw)
  To: kvm, linux-kernel
  Cc: pbonzini, mtosatti, alex.williamson, eric.auger, feng.wu

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-technology/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 in tip/x86/apic)
- IOMMU part (about to be merged in merged in tip/x86/apic), here is the
  latest version: https://lkml.org/lkml/2015/6/9/22
- KVM and VFIO parts (this series)

Patch 8, 9, and 10 are from Eric Auger, there are some common VFIO APIs
defined in them. I integrate them in this series and use the APIs in
my patches.

v4:
* For lowest-priority interrupt, only support single-CPU destination
interrupts at the current stage, more common lowest priority support
will be added later.
* Accoring to Marcelo's suggestion, when vCPU is blocked, we handle
the posted-interrupts in the HLT emulation path.
* Some small changes (coding style, typo, add some code comments)

Eric Auger (3):
  KVM: kvm-vfio: User API for IRQ forwarding
  VFIO: external user API for interaction
  KVM: kvm-vfio: wrappers to VFIO external API device helpers

Feng Wu (13):
  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
  KVM: kvm-vfio: User API for VT-d Posted-Interrupts
  KVM: kvm-vfio: implement the VFIO skeleton for VT-d Posted-Interrupts
  KVM: x86: kvm-vfio: VT-d posted-interrupts setup
  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

 Documentation/virtual/kvm/devices/vfio.txt |  43 ++++-
 arch/x86/include/asm/kvm_host.h            |  16 ++
 arch/x86/kvm/Makefile                      |   3 +-
 arch/x86/kvm/irq_comm.c                    |  28 ++-
 arch/x86/kvm/kvm_vfio_x86.c                |  85 +++++++++
 arch/x86/kvm/vmx.c                         | 278 ++++++++++++++++++++++++++++-
 arch/x86/kvm/x86.c                         |  42 +++--
 drivers/vfio/vfio.c                        |  24 +++
 include/linux/kvm_host.h                   |  40 +++++
 include/linux/vfio.h                       |   3 +
 include/uapi/linux/kvm.h                   |  14 ++
 virt/kvm/irqchip.c                         |  11 --
 virt/kvm/kvm_main.c                        |   3 +
 virt/kvm/vfio.c                            | 200 +++++++++++++++++++++
 14 files changed, 758 insertions(+), 32 deletions(-)
 create mode 100644 arch/x86/kvm/kvm_vfio_x86.c

-- 
2.1.0


^ permalink raw reply	[flat|nested] 59+ messages in thread

end of thread, other threads:[~2015-06-29 15:18 UTC | newest]

Thread overview: 59+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-06-11 10:51 [v4 00/16] Add VT-d Posted-Interrupts support Feng Wu
2015-06-11 10:51 ` [v4 01/16] KVM: Extend struct pi_desc for VT-d Posted-Interrupts Feng Wu
2015-06-23 15:49   ` Paolo Bonzini
2015-06-24  5:42     ` Wu, Feng
2015-06-24  8:46       ` Paolo Bonzini
2015-06-11 10:51 ` [v4 02/16] KVM: Add some helper functions for Posted-Interrupts Feng Wu
2015-06-11 10:51 ` [v4 03/16] KVM: Define a new interface kvm_intr_is_single_vcpu() Feng Wu
2015-06-11 10:51 ` [v4 04/16] KVM: Get Posted-Interrupts descriptor address from struct kvm_vcpu Feng Wu
2015-06-11 10:51 ` [v4 05/16] KVM: Add interfaces to control PI outside vmx Feng Wu
2015-06-11 10:51 ` [v4 06/16] KVM: Make struct kvm_irq_routing_table accessible Feng Wu
2015-06-11 10:51 ` [v4 07/16] KVM: make kvm_set_msi_irq() public Feng Wu
2015-06-11 10:51 ` [v4 08/16] KVM: kvm-vfio: User API for IRQ forwarding Feng Wu
2015-06-11 13:37   ` Eric Auger
2015-06-12  0:20     ` Wu, Feng
2015-06-11 19:59   ` Avi Kivity
2015-06-12  0:23     ` Wu, Feng
2015-06-12 15:41       ` Alex Williamson
2015-06-12 18:48         ` Avi Kivity
2015-06-12 19:03           ` Alex Williamson
2015-06-15  6:42             ` Wu, Feng
2015-06-15  6:42               ` Wu, Feng
2015-06-15 16:17             ` Eric Auger
2015-06-15 16:45               ` Alex Williamson
2015-06-18  9:16                 ` Wu, Feng
2015-06-18  9:16                   ` Wu, Feng
2015-06-18 20:04                   ` Alex Williamson
2015-06-24 15:46                     ` Joerg Roedel
2015-06-25  1:54                       ` Wu, Feng
2015-06-25  9:37                       ` Wu, Feng
2015-06-25 15:11                         ` Alex Williamson
2015-06-29  9:06                           ` Joerg Roedel
2015-06-29  9:14                             ` Wu, Feng
2015-06-29  9:22                               ` Joerg Roedel
2015-06-29 13:01                                 ` Wu, Feng
2015-06-29 13:27                     ` Wu, Feng
2015-06-29 13:27                       ` Wu, Feng
2015-06-29 15:18                       ` Alex Williamson
2015-06-24 15:50               ` Joerg Roedel
2015-06-24 16:25                 ` Eric Auger
2015-06-24 19:49                   ` Alex Williamson
2015-06-25  1:57                     ` Wu, Feng
2015-06-25  1:57                       ` Wu, Feng
2015-06-11 10:51 ` [v4 09/16] VFIO: external user API for interaction Feng Wu
2015-06-11 10:51 ` [v4 10/16] KVM: kvm-vfio: wrappers to VFIO external API device helpers Feng Wu
2015-06-11 10:51 ` [v4 11/16] KVM: kvm-vfio: User API for VT-d Posted-Interrupts Feng Wu
2015-06-11 10:51 ` [v4 12/16] KVM: kvm-vfio: implement the VFIO skeleton " Feng Wu
2015-06-11 17:15   ` Alex Williamson
2015-06-12  4:54     ` Wu, Feng
2015-06-12  4:54       ` Wu, Feng
2015-06-12 14:51       ` Alex Williamson
2015-06-23 16:00         ` Paolo Bonzini
2015-06-11 10:51 ` [v4 13/16] KVM: x86: kvm-vfio: VT-d posted-interrupts setup Feng Wu
2015-06-11 17:16   ` Alex Williamson
2015-06-12  4:58     ` Wu, Feng
2015-06-12  4:58       ` Wu, Feng
2015-06-11 10:51 ` [v4 14/16] KVM: Update Posted-Interrupts Descriptor when vCPU is preempted Feng Wu
2015-06-11 10:51 ` [v4 15/16] KVM: Update Posted-Interrupts Descriptor when vCPU is blocked Feng Wu
2015-06-23 16:05   ` Paolo Bonzini
2015-06-11 10:51 ` [v4 16/16] KVM: Warn if 'SN' is set during posting interrupts by software Feng Wu

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.