Pull KVM updates from Radim Krčmář: "ARM: - Improved guest IPA space support (32 to 52 bits) - RAS event delivery for 32bit - PMU fixes - Guest entry hardening - Various cleanups - Port of dirty_log_test selftest PPC: - Nested HV KVM support for radix guests on POWER9. The performance is much better than with PR KVM. Migration and arbitrary level of nesting is supported. - Disable nested HV-KVM on early POWER9 chips that need a particular hardware bug workaround - One VM per core mode to prevent potential data leaks - PCI pass-through optimization - merge ppc-kvm topic branch and kvm-ppc-fixes to get a better base s390: - Initial version of AP crypto virtualization via vfio-mdev - Improvement for vfio-ap - Set the host program identifier - Optimize page table locking x86: - Enable nested virtualization by default - Implement Hyper-V IPI hypercalls - Improve #PF and #DB handling - Allow guests to use Enlightened VMCS - Add migration selftests for VMCS and Enlightened VMCS - Allow coalesced PIO accesses - Add an option to perform nested VMCS host state consistency check through hardware - Automatic tuning of lapic_timer_advance_ns - Many fixes, minor improvements, and cleanups" * tag 'kvm-4.20-1' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (204 commits) KVM/nVMX: Do not validate that posted_intr_desc_addr is page aligned Revert "kvm: x86: optimize dr6 restore" KVM: PPC: Optimize clearing TCEs for sparse tables x86/kvm/nVMX: tweak shadow fields selftests/kvm: add missing executables to .gitignore KVM: arm64: Safety check PSTATE when entering guest and handle IL KVM: PPC: Book3S HV: Don't use streamlined entry path on early POWER9 chips arm/arm64: KVM: Enable 32 bits kvm vcpu events support arm/arm64: KVM: Rename function kvm_arch_dev_ioctl_check_extension() KVM: arm64: Fix caching of host MDCR_EL2 value KVM: VMX: enable nested virtualization by default KVM/x86: Use 32bit xor to clear registers in svm.c kvm: x86: Introduce KVM_CAP_EXCEPTION_PAYLOAD kvm: vmx: Defer setting of DR6 until #DB delivery kvm: x86: Defer setting of CR2 until #PF delivery kvm: x86: Add payload operands to kvm_multiple_exception kvm: x86: Add exception payload fields to kvm_vcpu_events kvm: x86: Add has_payload and payload to kvm_queued_exception KVM: Documentation: Fix omission in struct kvm_vcpu_events KVM: selftests: add Enlightened VMCS test ...
Showing the changes to include/uapi/linux (2 of 138 files). Show all
Unified · Split
| @@ -420,13 +420,19 @@ struct kvm_run { · 419 unmodified lines | ||
| 420 | 420 | struct kvm_coalesced_mmio_zone { |
| 421 | 421 | __u64 addr; |
| 422 | 422 | __u32 size; |
| 423 | − __u32 pad; | |
| 423 | + union { | |
| 424 | + __u32 pad; | |
| 425 | + __u32 pio; | |
| 426 | + }; | |
| 424 | 427 | }; |
| 425 | 428 | |
| 426 | 429 | struct kvm_coalesced_mmio { |
| 427 | 430 | __u64 phys_addr; |
| 428 | 431 | __u32 len; |
| 429 | − __u32 pad; | |
| 432 | + union { | |
| 433 | + __u32 pad; | |
| 434 | + __u32 pio; | |
| 435 | + }; | |
| 430 | 436 | __u8 data[8]; |
| 431 | 437 | }; |
| 432 | 438 | |
| @@ -719,6 +725,7 @@ struct kvm_ppc_one_seg_page_size { · 286 unmodified lines | ||
| 719 | 725 | |
| 720 | 726 | #define KVM_PPC_PAGE_SIZES_REAL 0x00000001 |
| 721 | 727 | #define KVM_PPC_1T_SEGMENTS 0x00000002 |
| 728 | +#define KVM_PPC_NO_HASH 0x00000004 | |
| 722 | 729 | |
| 723 | 730 | struct kvm_ppc_smmu_info { |
| 724 | 731 | __u64 flags; |
| @@ -750,6 +757,15 @@ struct kvm_ppc_resize_hpt { · 25 unmodified lines | ||
| 750 | 757 | |
| 751 | 758 | #define KVM_S390_SIE_PAGE_OFFSET 1 |
| 752 | 759 | |
| 760 | +/* | |
| 761 | + * On arm64, machine type can be used to request the physical | |
| 762 | + * address size for the VM. Bits[7-0] are reserved for the guest | |
| 763 | + * PA size shift (i.e, log2(PA_Size)). For backward compatibility, | |
| 764 | + * value 0 implies the default IPA size, 40bits. | |
| 765 | + */ | |
| 766 | +#define KVM_VM_TYPE_ARM_IPA_SIZE_MASK 0xffULL | |
| 767 | +#define KVM_VM_TYPE_ARM_IPA_SIZE(x) \ | |
| 768 | + ((x) & KVM_VM_TYPE_ARM_IPA_SIZE_MASK) | |
| 753 | 769 | /* |
| 754 | 770 | * ioctls for /dev/kvm fds: |
| 755 | 771 | */ |
| @@ -953,6 +969,12 @@ struct kvm_ppc_resize_hpt { · 197 unmodified lines | ||
| 953 | 969 | #define KVM_CAP_NESTED_STATE 157 |
| 954 | 970 | #define KVM_CAP_ARM_INJECT_SERROR_ESR 158 |
| 955 | 971 | #define KVM_CAP_MSR_PLATFORM_INFO 159 |
| 972 | +#define KVM_CAP_PPC_NESTED_HV 160 | |
| 973 | +#define KVM_CAP_HYPERV_SEND_IPI 161 | |
| 974 | +#define KVM_CAP_COALESCED_PIO 162 | |
| 975 | +#define KVM_CAP_HYPERV_ENLIGHTENED_VMCS 163 | |
| 976 | +#define KVM_CAP_EXCEPTION_PAYLOAD 164 | |
| 977 | +#define KVM_CAP_ARM_VM_IPA_SIZE 165 | |
| 956 | 978 | |
| 957 | 979 | #ifdef KVM_CAP_IRQ_ROUTING |
| 958 | 980 | |
| @@ -200,6 +200,7 @@ struct vfio_device_info { · 199 unmodified lines | ||
| 200 | 200 | #define VFIO_DEVICE_FLAGS_PLATFORM (1 << 2) /* vfio-platform device */ |
| 201 | 201 | #define VFIO_DEVICE_FLAGS_AMBA (1 << 3) /* vfio-amba device */ |
| 202 | 202 | #define VFIO_DEVICE_FLAGS_CCW (1 << 4) /* vfio-ccw device */ |
| 203 | +#define VFIO_DEVICE_FLAGS_AP (1 << 5) /* vfio-ap device */ | |
| 203 | 204 | __u32 num_regions; /* Max region index + 1 */ |
| 204 | 205 | __u32 num_irqs; /* Max IRQ index + 1 */ |
| 205 | 206 | }; |
| @@ -215,6 +216,7 @@ struct vfio_device_info { · 9 unmodified lines | ||
| 215 | 216 | #define VFIO_DEVICE_API_PLATFORM_STRING "vfio-platform" |
| 216 | 217 | #define VFIO_DEVICE_API_AMBA_STRING "vfio-amba" |
| 217 | 218 | #define VFIO_DEVICE_API_CCW_STRING "vfio-ccw" |
| 219 | +#define VFIO_DEVICE_API_AP_STRING "vfio-ap" | |
| 218 | 220 | |
| 219 | 221 | /** |
| 220 | 222 | * VFIO_DEVICE_GET_REGION_INFO - _IOWR(VFIO_TYPE, VFIO_BASE + 8, |