From: Joao Martins Date: Tue, 5 Feb 2019 17:23:35 +0000 (-0500) Subject: KVM: x86: declare Xen HVM evtchn offload capability X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=d5bf13b3e3cca43b3bffd7876eb87a006cd0479d;p=users%2Fdwmw2%2Flinux.git KVM: x86: declare Xen HVM evtchn offload capability Add new capability for event channel support in hypervisor. Signed-off-by: Joao Martins --- diff --git a/Documentation/virtual/kvm/api.txt b/Documentation/virtual/kvm/api.txt index c3a1402b76bf4..36d9386415fac 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 e29cefd2dc6ac..b1d9045d7989c 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 4eae47a0ef638..1b3ecce5f92ed 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 */