History

Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm

Pull KVM updates from Paolo Bonzini: "ARM: - More progress on the protected VM front, now with the full fixed feature set as well as the limitation of some hypercalls after initialisation. - Cleanup of the RAZ/WI sysreg handling, which was pointlessly complicated - Fixes for the vgic placement in the IPA space, together with a bunch of selftests - More memcg accounting of the memory allocated on behalf of a guest - Timer and vgic selftests - Workarounds for the Apple M1 broken vgic implementation - KConfig cleanups - New kvmarm.mode=none option, for those who really dislike us RISC-V: - New KVM port. x86: - New API to control TSC offset from userspace - TSC scaling for nested hypervisors on SVM - Switch masterclock protection from raw_spin_lock to seqcount - Clean up function prototypes in the page fault code and avoid repeated memslot lookups - Convey the exit reason to userspace on emulation failure - Configure time between NX page recovery iterations - Expose Predictive Store Forwarding Disable CPUID leaf - Allocate page tracking data structures lazily (if the i915 KVM-GT functionality is not compiled in) - Cleanups, fixes and optimizations for the shadow MMU code s390: - SIGP Fixes - initial preparations for lazy destroy of secure VMs - storage key improvements/fixes - Log the guest CPNC Starting from this release, KVM-PPC patches will come from Michael Ellerman's PPC tree" * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (227 commits) RISC-V: KVM: fix boolreturn.cocci warnings RISC-V: KVM: remove unneeded semicolon RISC-V: KVM: Fix GPA passed to __kvm_riscv_hfence_gvma_xyz() functions RISC-V: KVM: Factor-out FP virtualization into separate sources KVM: s390: add debug statement for diag 318 CPNC data KVM: s390: pv: properly handle page flags for protected guests KVM: s390: Fix handle_sske page fault handling KVM: x86: SGX must obey the KVM_INTERNAL_ERROR_EMULATION protocol KVM: x86: On emulation failure, convey the exit reason, etc. to userspace KVM: x86: Get exit_reason as part of kvm_x86_ops.get_exit_info KVM: x86: Clarify the kvm_run.emulation_failure structure layout KVM: s390: Add a routine for setting userspace CPU state KVM: s390: Simplify SIGP Set Arch handling KVM: s390: pv: avoid stalls when making pages secure KVM: s390: pv: avoid stalls for kvm_s390_pv_init_vm KVM: s390: pv: avoid double free of sida page KVM: s390: pv: add macros for UVC CC values s390/mm: optimize reset_guest_reference_bit() s390/mm: optimize set_guest_storage_key() s390/mm: no need for pte_alloc_map_lock() if we know the pmd is present ...

Linus Torvalds committed 5 years ago

Commit d7e0a792 parents 44261f8 52cf891152 files · +11646 −1752Browse files

Showing the changes to include/uapi/linux (1 of 152 files). Show all

Unified · Split

include/uapi/linux/kvm.h+26−3
@@ -269,6 +269,7 @@ struct kvm_xen_exit { · 268 unmodified lines
269#define KVM_EXIT_AP_RESET_HOLD 32269#define KVM_EXIT_AP_RESET_HOLD 32
270#define KVM_EXIT_X86_BUS_LOCK 33270#define KVM_EXIT_X86_BUS_LOCK 33
271#define KVM_EXIT_XEN 34271#define KVM_EXIT_XEN 34
272#define KVM_EXIT_RISCV_SBI 35
272 273
273/* For KVM_EXIT_INTERNAL_ERROR */274/* For KVM_EXIT_INTERNAL_ERROR */
274/* Emulate instruction failed. */275/* Emulate instruction failed. */
@@ -397,13 +398,23 @@ struct kvm_run { · 122 unmodified lines
397 * "ndata" is correct, that new fields are enumerated in "flags",398 * "ndata" is correct, that new fields are enumerated in "flags",
398 * and that each flag enumerates fields that are 64-bit aligned399 * and that each flag enumerates fields that are 64-bit aligned
399 * and sized (so that ndata+internal.data[] is valid/accurate).400 * and sized (so that ndata+internal.data[] is valid/accurate).
401 *
402 * Space beyond the defined fields may be used to store arbitrary
403 * debug information relating to the emulation failure. It is
404 * accounted for in "ndata" but the format is unspecified and is
405 * not represented in "flags". Any such information is *not* ABI!
400 */406 */
401 struct {407 struct {
402 __u32 suberror;408 __u32 suberror;
403 __u32 ndata;409 __u32 ndata;
404 __u64 flags;410 __u64 flags;
405 __u8 insn_size;411 union {
406 __u8 insn_bytes[15];412 struct {
413 __u8 insn_size;
414 __u8 insn_bytes[15];
415 };
416 };
417 /* Arbitrary debug data may follow. */
407 } emulation_failure;418 } emulation_failure;
408 /* KVM_EXIT_OSI */419 /* KVM_EXIT_OSI */
409 struct {420 struct {
@@ -469,6 +480,13 @@ struct kvm_run { · 59 unmodified lines
469 } msr;480 } msr;
470 /* KVM_EXIT_XEN */481 /* KVM_EXIT_XEN */
471 struct kvm_xen_exit xen;482 struct kvm_xen_exit xen;
483 /* KVM_EXIT_RISCV_SBI */
484 struct {
485 unsigned long extension_id;
486 unsigned long function_id;
487 unsigned long args[6];
488 unsigned long ret[2];
489 } riscv_sbi;
472 /* Fix the size of the union. */490 /* Fix the size of the union. */
473 char padding[256];491 char padding[256];
474 };492 };
@@ -1223,11 +1241,16 @@ struct kvm_irqfd { · 748 unmodified lines
1223 1241
1224/* Do not use 1, KVM_CHECK_EXTENSION returned it before we had flags. */1242/* Do not use 1, KVM_CHECK_EXTENSION returned it before we had flags. */
1225#define KVM_CLOCK_TSC_STABLE 21243#define KVM_CLOCK_TSC_STABLE 2
1244#define KVM_CLOCK_REALTIME (1 << 2)
1245#define KVM_CLOCK_HOST_TSC (1 << 3)
1226 1246
1227struct kvm_clock_data {1247struct kvm_clock_data {
1228 __u64 clock;1248 __u64 clock;
1229 __u32 flags;1249 __u32 flags;
1230 __u32 pad[9];1250 __u32 pad0;
1251 __u64 realtime;
1252 __u64 host_tsc;
1253 __u32 pad[4];
1231};1254};
1232 1255
1233/* For KVM_CAP_SW_TLB */1256/* For KVM_CAP_SW_TLB */