Add new group KVM_DEV_VFIO_INTERRUPT and command KVM_DEV_VFIO_DEVIE_POSTING_IRQ related to it. This is used for VT-d Posted-Interrupts setup. Signed-off-by: Feng Wu <feng.wu@xxxxxxxxx> --- Documentation/virtual/kvm/devices/vfio.txt | 8 ++++++++ include/uapi/linux/kvm.h | 14 ++++++++++++++ 2 files changed, 22 insertions(+), 0 deletions(-) diff --git a/Documentation/virtual/kvm/devices/vfio.txt b/Documentation/virtual/kvm/devices/vfio.txt index ef51740..bd99176 100644 --- a/Documentation/virtual/kvm/devices/vfio.txt +++ b/Documentation/virtual/kvm/devices/vfio.txt @@ -13,6 +13,7 @@ VFIO-group is held by KVM. Groups: KVM_DEV_VFIO_GROUP + KVM_DEV_VFIO_INTERRUPT KVM_DEV_VFIO_GROUP attributes: KVM_DEV_VFIO_GROUP_ADD: Add a VFIO group to VFIO-KVM device tracking @@ -20,3 +21,10 @@ KVM_DEV_VFIO_GROUP attributes: For each, kvm_device_attr.addr points to an int32_t file descriptor for the VFIO group. + +KVM_DEV_VFIO_INTERRUPT attributes: + KVM_DEV_VFIO_INTERRUPT_POSTING_IRQ: Set up the interrupt configuration for +VT-d Posted-Interrrupts + +For each, kvm_device_attr.addr points to struct kvm_posted_intr, which +include the needed information for VT-d Posted-Interrupts setup. diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h index 6076882..5544fcc 100644 --- a/include/uapi/linux/kvm.h +++ b/include/uapi/linux/kvm.h @@ -943,9 +943,23 @@ struct kvm_device_attr { __u64 addr; /* userspace address of attr data */ }; +struct virq_info { + __u32 index; /* index of the msi/msix entry */ + int virq; /* virq of the interrupt */ +}; + +struct kvm_posted_intr { + __u32 fd; /* file descriptor of the VFIO device */ + __u32 count; + bool msix; + struct virq_info virq_info[0]; +}; + #define KVM_DEV_VFIO_GROUP 1 #define KVM_DEV_VFIO_GROUP_ADD 1 #define KVM_DEV_VFIO_GROUP_DEL 2 +#define KVM_DEV_VFIO_INTERRUPT 2 +#define KVM_DEV_VFIO_INTERRUPT_POSTING_IRQ 1 enum kvm_device_type { KVM_DEV_TYPE_FSL_MPIC_20 = 1, -- 1.7.1 -- 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