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