diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2018-10-25 20:57:35 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2018-10-25 20:57:35 -0400 |
| commit | 0d1e8b8d2bcd3150d51754d8d0fdbf44dc88b0d3 (patch) | |
| tree | 2794cb2347daa76b00160a6ffb68663f4138dcc7 /include/uapi/linux | |
| parent | 83c4087ce468601501ecde4d0ec5b2abd5f57c31 (diff) | |
| parent | 22a7cdcae6a4a3c8974899e62851d270956f58ce (diff) | |
Merge tag 'kvm-4.20-1' of git://git.kernel.org/pub/scm/virt/kvm/kvm
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
...
Diffstat (limited to 'include/uapi/linux')
| -rw-r--r-- | include/uapi/linux/kvm.h | 26 | ||||
| -rw-r--r-- | include/uapi/linux/vfio.h | 2 |
2 files changed, 26 insertions, 2 deletions
diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h index 251be353f950..2b7a652c9fa4 100644 --- a/include/uapi/linux/kvm.h +++ b/include/uapi/linux/kvm.h | |||
| @@ -420,13 +420,19 @@ struct kvm_run { | |||
| 420 | struct kvm_coalesced_mmio_zone { | 420 | struct kvm_coalesced_mmio_zone { |
| 421 | __u64 addr; | 421 | __u64 addr; |
| 422 | __u32 size; | 422 | __u32 size; |
| 423 | __u32 pad; | 423 | union { |
| 424 | __u32 pad; | ||
| 425 | __u32 pio; | ||
| 426 | }; | ||
| 424 | }; | 427 | }; |
| 425 | 428 | ||
| 426 | struct kvm_coalesced_mmio { | 429 | struct kvm_coalesced_mmio { |
| 427 | __u64 phys_addr; | 430 | __u64 phys_addr; |
| 428 | __u32 len; | 431 | __u32 len; |
| 429 | __u32 pad; | 432 | union { |
| 433 | __u32 pad; | ||
| 434 | __u32 pio; | ||
| 435 | }; | ||
| 430 | __u8 data[8]; | 436 | __u8 data[8]; |
| 431 | }; | 437 | }; |
| 432 | 438 | ||
| @@ -719,6 +725,7 @@ struct kvm_ppc_one_seg_page_size { | |||
| 719 | 725 | ||
| 720 | #define KVM_PPC_PAGE_SIZES_REAL 0x00000001 | 726 | #define KVM_PPC_PAGE_SIZES_REAL 0x00000001 |
| 721 | #define KVM_PPC_1T_SEGMENTS 0x00000002 | 727 | #define KVM_PPC_1T_SEGMENTS 0x00000002 |
| 728 | #define KVM_PPC_NO_HASH 0x00000004 | ||
| 722 | 729 | ||
| 723 | struct kvm_ppc_smmu_info { | 730 | struct kvm_ppc_smmu_info { |
| 724 | __u64 flags; | 731 | __u64 flags; |
| @@ -751,6 +758,15 @@ struct kvm_ppc_resize_hpt { | |||
| 751 | #define KVM_S390_SIE_PAGE_OFFSET 1 | 758 | #define KVM_S390_SIE_PAGE_OFFSET 1 |
| 752 | 759 | ||
| 753 | /* | 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) | ||
| 769 | /* | ||
| 754 | * ioctls for /dev/kvm fds: | 770 | * ioctls for /dev/kvm fds: |
| 755 | */ | 771 | */ |
| 756 | #define KVM_GET_API_VERSION _IO(KVMIO, 0x00) | 772 | #define KVM_GET_API_VERSION _IO(KVMIO, 0x00) |
| @@ -953,6 +969,12 @@ struct kvm_ppc_resize_hpt { | |||
| 953 | #define KVM_CAP_NESTED_STATE 157 | 969 | #define KVM_CAP_NESTED_STATE 157 |
| 954 | #define KVM_CAP_ARM_INJECT_SERROR_ESR 158 | 970 | #define KVM_CAP_ARM_INJECT_SERROR_ESR 158 |
| 955 | #define KVM_CAP_MSR_PLATFORM_INFO 159 | 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 | #ifdef KVM_CAP_IRQ_ROUTING | 979 | #ifdef KVM_CAP_IRQ_ROUTING |
| 958 | 980 | ||
diff --git a/include/uapi/linux/vfio.h b/include/uapi/linux/vfio.h index 1aa7b82e8169..f378b9802d8b 100644 --- a/include/uapi/linux/vfio.h +++ b/include/uapi/linux/vfio.h | |||
| @@ -200,6 +200,7 @@ struct vfio_device_info { | |||
| 200 | #define VFIO_DEVICE_FLAGS_PLATFORM (1 << 2) /* vfio-platform device */ | 200 | #define VFIO_DEVICE_FLAGS_PLATFORM (1 << 2) /* vfio-platform device */ |
| 201 | #define VFIO_DEVICE_FLAGS_AMBA (1 << 3) /* vfio-amba device */ | 201 | #define VFIO_DEVICE_FLAGS_AMBA (1 << 3) /* vfio-amba device */ |
| 202 | #define VFIO_DEVICE_FLAGS_CCW (1 << 4) /* vfio-ccw device */ | 202 | #define VFIO_DEVICE_FLAGS_CCW (1 << 4) /* vfio-ccw device */ |
| 203 | #define VFIO_DEVICE_FLAGS_AP (1 << 5) /* vfio-ap device */ | ||
| 203 | __u32 num_regions; /* Max region index + 1 */ | 204 | __u32 num_regions; /* Max region index + 1 */ |
| 204 | __u32 num_irqs; /* Max IRQ index + 1 */ | 205 | __u32 num_irqs; /* Max IRQ index + 1 */ |
| 205 | }; | 206 | }; |
| @@ -215,6 +216,7 @@ struct vfio_device_info { | |||
| 215 | #define VFIO_DEVICE_API_PLATFORM_STRING "vfio-platform" | 216 | #define VFIO_DEVICE_API_PLATFORM_STRING "vfio-platform" |
| 216 | #define VFIO_DEVICE_API_AMBA_STRING "vfio-amba" | 217 | #define VFIO_DEVICE_API_AMBA_STRING "vfio-amba" |
| 217 | #define VFIO_DEVICE_API_CCW_STRING "vfio-ccw" | 218 | #define VFIO_DEVICE_API_CCW_STRING "vfio-ccw" |
| 219 | #define VFIO_DEVICE_API_AP_STRING "vfio-ap" | ||
| 218 | 220 | ||
| 219 | /** | 221 | /** |
| 220 | * VFIO_DEVICE_GET_REGION_INFO - _IOWR(VFIO_TYPE, VFIO_BASE + 8, | 222 | * VFIO_DEVICE_GET_REGION_INFO - _IOWR(VFIO_TYPE, VFIO_BASE + 8, |
