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 ...
Showing the changes to include/uapi (1 of 87 files). Show all
Unified · Split
| @@ -154,6 +154,20 @@ struct kvm_s390_skeys { · 153 unmodified lines | ||
| 154 | 154 | __u32 flags; |
| 155 | 155 | __u32 reserved[9]; |
| 156 | 156 | }; |
| 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 | + | |
| 157 | 171 | #define KVM_S390_GET_SKEYS_NONE 1 |
| 158 | 172 | #define KVM_S390_SKEYS_MAX 1048576 |
| 159 | 173 | |
| @@ -184,6 +198,7 @@ struct kvm_s390_skeys { · 24 unmodified lines | ||
| 184 | 198 | #define KVM_EXIT_SYSTEM_EVENT 24 |
| 185 | 199 | #define KVM_EXIT_S390_STSI 25 |
| 186 | 200 | #define KVM_EXIT_IOAPIC_EOI 26 |
| 201 | +#define KVM_EXIT_HYPERV 27 | |
| 187 | 202 | |
| 188 | 203 | /* For KVM_EXIT_INTERNAL_ERROR */ |
| 189 | 204 | /* Emulate instruction failed. */ |
| @@ -338,6 +353,8 @@ struct kvm_run { · 148 unmodified lines | ||
| 338 | 353 | struct { |
| 339 | 354 | __u8 vector; |
| 340 | 355 | } eoi; |
| 356 | + /* KVM_EXIT_HYPERV */ | |
| 357 | + struct kvm_hyperv_exit hyperv; | |
| 341 | 358 | /* Fix the size of the union. */ |
| 342 | 359 | char padding[256]; |
| 343 | 360 | }; |
| @@ -831,6 +848,8 @@ struct kvm_ppc_smmu_info { · 487 unmodified lines | ||
| 831 | 848 | #define KVM_CAP_GUEST_DEBUG_HW_WPS 120 |
| 832 | 849 | #define KVM_CAP_SPLIT_IRQCHIP 121 |
| 833 | 850 | #define KVM_CAP_IOEVENTFD_ANY_LENGTH 122 |
| 851 | +#define KVM_CAP_HYPERV_SYNIC 123 | |
| 852 | +#define KVM_CAP_S390_RI 124 | |
| 834 | 853 | |
| 835 | 854 | #ifdef KVM_CAP_IRQ_ROUTING |
| 836 | 855 | |
| @@ -854,10 +873,16 @@ struct kvm_irq_routing_s390_adapter { · 17 unmodified lines | ||
| 854 | 873 | __u32 adapter_id; |
| 855 | 874 | }; |
| 856 | 875 | |
| 876 | +struct kvm_irq_routing_hv_sint { | |
| 877 | + __u32 vcpu; | |
| 878 | + __u32 sint; | |
| 879 | +}; | |
| 880 | + | |
| 857 | 881 | /* gsi routing entry types */ |
| 858 | 882 | #define KVM_IRQ_ROUTING_IRQCHIP 1 |
| 859 | 883 | #define KVM_IRQ_ROUTING_MSI 2 |
| 860 | 884 | #define KVM_IRQ_ROUTING_S390_ADAPTER 3 |
| 885 | +#define KVM_IRQ_ROUTING_HV_SINT 4 | |
| 861 | 886 | |
| 862 | 887 | struct kvm_irq_routing_entry { |
| 863 | 888 | __u32 gsi; |
| @@ -868,6 +893,7 @@ struct kvm_irq_routing_entry { · 4 unmodified lines | ||
| 868 | 893 | struct kvm_irq_routing_irqchip irqchip; |
| 869 | 894 | struct kvm_irq_routing_msi msi; |
| 870 | 895 | struct kvm_irq_routing_s390_adapter adapter; |
| 896 | + struct kvm_irq_routing_hv_sint hv_sint; | |
| 871 | 897 | __u32 pad[8]; |
| 872 | 898 | } u; |
| 873 | 899 | }; |