History

Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm

Pull KVM updates from Paolo Bonzini: "PPC changes will come next week. - s390: Support for runtime instrumentation within guests, support of 248 VCPUs. - ARM: rewrite of the arm64 world switch in C, support for 16-bit VM identifiers. Performance counter virtualization missed the boat. - x86: Support for more Hyper-V features (synthetic interrupt controller), MMU cleanups" * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (115 commits) kvm: x86: Fix vmwrite to SECONDARY_VM_EXEC_CONTROL kvm/x86: Hyper-V SynIC timers tracepoints kvm/x86: Hyper-V SynIC tracepoints kvm/x86: Update SynIC timers on guest entry only kvm/x86: Skip SynIC vector check for QEMU side kvm/x86: Hyper-V fix SynIC timer disabling condition kvm/x86: Reorg stimer_expiration() to better control timer restart kvm/x86: Hyper-V unify stimer_start() and stimer_restart() kvm/x86: Drop stimer_stop() function kvm/x86: Hyper-V timers fix incorrect logical operation KVM: move architecture-dependent requests to arch/ KVM: renumber vcpu->request bits KVM: document which architecture uses each request bit KVM: Remove unused KVM_REQ_KICK to save a bit in vcpu->requests kvm: x86: Check kvm_write_guest return value in kvm_write_wall_clock KVM: s390: implement the RI support of guest kvm/s390: drop unpaired smp_mb kvm: x86: fix comment about {mmu,nested_mmu}.gva_to_gpa KVM: x86: MMU: Use clear_page() instead of init_shadow_page_table() arm/arm64: KVM: Detect vGIC presence at runtime ...

Linus Torvalds committed 10 years ago

Commit 1baa5ef2 parents c9bed1c 45bdbcf87 files · +4043 −2393Browse files

Showing the changes to include/uapi (1 of 87 files). Show all

Unified · Split

include/uapi/linux/kvm.h+26−0
@@ -154,6 +154,20 @@ struct kvm_s390_skeys { · 153 unmodified lines
154154 __u32 flags;
155155 __u32 reserved[9];
156156 };
157+
158+struct kvm_hyperv_exit {
159+#define KVM_EXIT_HYPERV_SYNIC 1
160+ __u32 type;
161+ union {
162+ struct {
163+ __u32 msr;
164+ __u64 control;
165+ __u64 evt_page;
166+ __u64 msg_page;
167+ } synic;
168+ } u;
169+};
170+
157171 #define KVM_S390_GET_SKEYS_NONE 1
158172 #define KVM_S390_SKEYS_MAX 1048576
159173
@@ -184,6 +198,7 @@ struct kvm_s390_skeys { · 24 unmodified lines
184198 #define KVM_EXIT_SYSTEM_EVENT 24
185199 #define KVM_EXIT_S390_STSI 25
186200 #define KVM_EXIT_IOAPIC_EOI 26
201+#define KVM_EXIT_HYPERV 27
187202
188203 /* For KVM_EXIT_INTERNAL_ERROR */
189204 /* Emulate instruction failed. */
@@ -338,6 +353,8 @@ struct kvm_run { · 148 unmodified lines
338353 struct {
339354 __u8 vector;
340355 } eoi;
356+ /* KVM_EXIT_HYPERV */
357+ struct kvm_hyperv_exit hyperv;
341358 /* Fix the size of the union. */
342359 char padding[256];
343360 };
@@ -831,6 +848,8 @@ struct kvm_ppc_smmu_info { · 487 unmodified lines
831848 #define KVM_CAP_GUEST_DEBUG_HW_WPS 120
832849 #define KVM_CAP_SPLIT_IRQCHIP 121
833850 #define KVM_CAP_IOEVENTFD_ANY_LENGTH 122
851+#define KVM_CAP_HYPERV_SYNIC 123
852+#define KVM_CAP_S390_RI 124
834853
835854 #ifdef KVM_CAP_IRQ_ROUTING
836855
@@ -854,10 +873,16 @@ struct kvm_irq_routing_s390_adapter { · 17 unmodified lines
854873 __u32 adapter_id;
855874 };
856875
876+struct kvm_irq_routing_hv_sint {
877+ __u32 vcpu;
878+ __u32 sint;
879+};
880+
857881 /* gsi routing entry types */
858882 #define KVM_IRQ_ROUTING_IRQCHIP 1
859883 #define KVM_IRQ_ROUTING_MSI 2
860884 #define KVM_IRQ_ROUTING_S390_ADAPTER 3
885+#define KVM_IRQ_ROUTING_HV_SINT 4
861886
862887 struct kvm_irq_routing_entry {
863888 __u32 gsi;
@@ -868,6 +893,7 @@ struct kvm_irq_routing_entry { · 4 unmodified lines
868893 struct kvm_irq_routing_irqchip irqchip;
869894 struct kvm_irq_routing_msi msi;
870895 struct kvm_irq_routing_s390_adapter adapter;
896+ struct kvm_irq_routing_hv_sint hv_sint;
871897 __u32 pad[8];
872898 } u;
873899 };