Pull KVM updates from Paolo Bonzini: "First batch of KVM changes for 4.4. s390: A bunch of fixes and optimizations for interrupt and time handling. PPC: Mostly bug fixes. ARM: No big features, but many small fixes and prerequisites including: - a number of fixes for the arch-timer - introducing proper level-triggered semantics for the arch-timers - a series of patches to synchronously halt a guest (prerequisite for IRQ forwarding) - some tracepoint improvements - a tweak for the EL2 panic handlers - some more VGIC cleanups getting rid of redundant state x86: Quite a few changes: - support for VT-d posted interrupts (i.e. PCI devices can inject interrupts directly into vCPUs). This introduces a new component (in virt/lib/) that connects VFIO and KVM together. The same infrastructure will be used for ARM interrupt forwarding as well. - more Hyper-V features, though the main one Hyper-V synthetic interrupt controller will have to wait for 4.5. These will let KVM expose Hyper-V devices. - nested virtualization now supports VPID (same as PCID but for vCPUs) which makes it quite a bit faster - for future hardware that supports NVDIMM, there is support for clflushopt, clwb, pcommit - support for "split irqchip", i.e. LAPIC in kernel + IOAPIC/PIC/PIT in userspace, which reduces the attack surface of the hypervisor - obligatory smattering of SMM fixes - on the guest side, stable scheduler clock support was rewritten to not require help from the hypervisor" * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (123 commits) KVM: VMX: Fix commit which broke PML KVM: x86: obey KVM_X86_QUIRK_CD_NW_CLEARED in kvm_set_cr0() KVM: x86: allow RSM from 64-bit mode KVM: VMX: fix SMEP and SMAP without EPT KVM: x86: move kvm_set_irq_inatomic to legacy device assignment KVM: device assignment: remove pointless #ifdefs KVM: x86: merge kvm_arch_set_irq with kvm_set_msi_inatomic KVM: x86: zero apic_arb_prio on reset drivers/hv: share Hyper-V SynIC constants with userspace KVM: x86: handle SMBASE as physical address in RSM KVM: x86: add read_phys to x86_emulate_ops KVM: x86: removing unused variable KVM: don't pointlessly leave KVM_COMPAT=y in non-KVM configs KVM: arm/arm64: Merge vgic_set_lr() and vgic_sync_lr_elrsr() KVM: arm/arm64: Clean up vgic_retire_lr() and surroundings KVM: arm/arm64: Optimize away redundant LR tracking KVM: s390: use simple switch statement as multiplexer KVM: s390: drop useless newline in debugging data KVM: s390: SCA must not cross page boundaries KVM: arm: Do not indent the arguments of DECLARE_BITMAP ...
Showing the changes to include/uapi (1 of 89 files). Show all
Unified · Split
| @@ -183,6 +183,7 @@ struct kvm_s390_skeys { · 182 unmodified lines | |||
| 183 | #define KVM_EXIT_EPR 23 | 183 | #define KVM_EXIT_EPR 23 |
| 184 | #define KVM_EXIT_SYSTEM_EVENT 24 | 184 | #define KVM_EXIT_SYSTEM_EVENT 24 |
| 185 | #define KVM_EXIT_S390_STSI 25 | 185 | #define KVM_EXIT_S390_STSI 25 |
| 186 | #define KVM_EXIT_IOAPIC_EOI 26 | ||
| 186 | 187 | ||
| 187 | /* For KVM_EXIT_INTERNAL_ERROR */ | 188 | /* For KVM_EXIT_INTERNAL_ERROR */ |
| 188 | /* Emulate instruction failed. */ | 189 | /* Emulate instruction failed. */ |
| @@ -333,6 +334,10 @@ struct kvm_run { · 144 unmodified lines | |||
| 333 | __u8 sel1; | 334 | __u8 sel1; |
| 334 | __u16 sel2; | 335 | __u16 sel2; |
| 335 | } s390_stsi; | 336 | } s390_stsi; |
| 337 | /* KVM_EXIT_IOAPIC_EOI */ | ||
| 338 | struct { | ||
| 339 | __u8 vector; | ||
| 340 | } eoi; | ||
| 336 | /* Fix the size of the union. */ | 341 | /* Fix the size of the union. */ |
| 337 | char padding[256]; | 342 | char padding[256]; |
| 338 | }; | 343 | }; |
| @@ -824,6 +829,8 @@ struct kvm_ppc_smmu_info { · 485 unmodified lines | |||
| 824 | #define KVM_CAP_MULTI_ADDRESS_SPACE 118 | 829 | #define KVM_CAP_MULTI_ADDRESS_SPACE 118 |
| 825 | #define KVM_CAP_GUEST_DEBUG_HW_BPS 119 | 830 | #define KVM_CAP_GUEST_DEBUG_HW_BPS 119 |
| 826 | #define KVM_CAP_GUEST_DEBUG_HW_WPS 120 | 831 | #define KVM_CAP_GUEST_DEBUG_HW_WPS 120 |
| 832 | #define KVM_CAP_SPLIT_IRQCHIP 121 | ||
| 833 | #define KVM_CAP_IOEVENTFD_ANY_LENGTH 122 | ||
| 827 | 834 | ||
| 828 | #ifdef KVM_CAP_IRQ_ROUTING | 835 | #ifdef KVM_CAP_IRQ_ROUTING |
| 829 | 836 | ||