Add new capability for event channel support in hypervisor. Signed-off-by: Joao Martins <joao.m.martins@xxxxxxxxxx> --- Documentation/virtual/kvm/api.txt | 9 +++++++++ arch/x86/kvm/x86.c | 1 + include/uapi/linux/kvm.h | 3 +++ 3 files changed, 13 insertions(+) diff --git a/Documentation/virtual/kvm/api.txt b/Documentation/virtual/kvm/api.txt index c3a1402b76bf..36d9386415fa 100644 --- a/Documentation/virtual/kvm/api.txt +++ b/Documentation/virtual/kvm/api.txt @@ -5037,3 +5037,12 @@ Architectures: x86 This capability indicates that KVM supports Xen HVM guests. This includes KVM_IRQ_ROUTING_XEN_EVTCHN as well. + +8.23 KVM_CAP_XEN_HVM_EVTCHN + +Architectures: x86 + +This capability indicates KVM's support for the event channel offload. +Implies support for KVM_IRQ_ROUTING_XEN_EVTCHN irq routing, and +for attribute KVM_XEN_ATTR_TYPE_EVTCHN in KVM_XEN_HVM_GET_ATTR or +KVM_XEN_HVM_SET_ATTR. diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index e29cefd2dc6a..b1d9045d7989 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -3010,6 +3010,7 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext) case KVM_CAP_SET_IDENTITY_MAP_ADDR: case KVM_CAP_XEN_HVM: case KVM_CAP_XEN_HVM_GUEST: + case KVM_CAP_XEN_HVM_EVTCHN: case KVM_CAP_VCPU_EVENTS: case KVM_CAP_HYPERV: case KVM_CAP_HYPERV_VAPIC: diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h index 4eae47a0ef63..1b3ecce5f92e 100644 --- a/include/uapi/linux/kvm.h +++ b/include/uapi/linux/kvm.h @@ -1004,6 +1004,7 @@ struct kvm_ppc_resize_hpt { #define KVM_CAP_MANUAL_DIRTY_LOG_PROTECT 166 #define KVM_CAP_HYPERV_CPUID 167 #define KVM_CAP_XEN_HVM_GUEST 168 +#define KVM_CAP_XEN_HVM_EVTCHN 169 #ifdef KVM_CAP_IRQ_ROUTING @@ -1046,6 +1047,7 @@ struct kvm_irq_routing_xen_evtchn { #define KVM_IRQ_ROUTING_MSI 2 #define KVM_IRQ_ROUTING_S390_ADAPTER 3 #define KVM_IRQ_ROUTING_HV_SINT 4 +/* Available with KVM_CAP_XEN_HVM_EVTCHN */ #define KVM_IRQ_ROUTING_XEN_EVTCHN 5 struct kvm_irq_routing_entry { @@ -1506,6 +1508,7 @@ struct kvm_xen_hvm_attr { #define KVM_XEN_ATTR_TYPE_VCPU_INFO 0x1 #define KVM_XEN_ATTR_TYPE_VCPU_TIME_INFO 0x2 #define KVM_XEN_ATTR_TYPE_VCPU_RUNSTATE 0x3 +/* Available with KVM_CAP_XEN_HVM_EVTCHN */ #define KVM_XEN_ATTR_TYPE_EVTCHN 0x4 /* Secure Encrypted Virtualization command */ -- 2.11.0