Pull KVM updates from Paolo Bonzini: "ARM: - selftests improvements - large PUD support for HugeTLB - single-stepping fixes - improved tracing - various timer and vGIC fixes x86: - Processor Tracing virtualization - STIBP support - some correctness fixes - refactorings and splitting of vmx.c - use the Hyper-V range TLB flush hypercall - reduce order of vcpu struct - WBNOINVD support - do not use -ftrace for __noclone functions - nested guest support for PAUSE filtering on AMD - more Hyper-V enlightenments (direct mode for synthetic timers) PPC: - nested VFIO s390: - bugfixes only this time" * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (171 commits) KVM: x86: Add CPUID support for new instruction WBNOINVD kvm: selftests: ucall: fix exit mmio address guessing Revert "compiler-gcc: disable -ftracer for __noclone functions" KVM: VMX: Move VM-Enter + VM-Exit handling to non-inline sub-routines KVM: VMX: Explicitly reference RCX as the vmx_vcpu pointer in asm blobs KVM: x86: Use jmp to invoke kvm_spurious_fault() from .fixup MAINTAINERS: Add arch/x86/kvm sub-directories to existing KVM/x86 entry KVM/x86: Use SVM assembly instruction mnemonics instead of .byte streams KVM/MMU: Flush tlb directly in the kvm_zap_gfn_range() KVM/MMU: Flush tlb directly in kvm_set_pte_rmapp() KVM/MMU: Move tlb flush in kvm_set_pte_rmapp() to kvm_mmu_notifier_change_pte() KVM: Make kvm_set_spte_hva() return int KVM: Replace old tlb flush function with new one to flush a specified range. KVM/MMU: Add tlb flush with range helper function KVM/VMX: Add hv tlb range flush support x86/hyper-v: Add HvFlushGuestAddressList hypercall support KVM: Add tlb_remote_flush_with_range callback in kvm_x86_ops KVM: x86: Disable Intel PT when VMXON in L1 guest KVM: x86: Set intercept for Intel PT MSRs read/write KVM: x86: Implement Intel PT MSRs read/write emulation ...
Showing the changes to include/uapi/linux (1 of 119 files). Show all
Unified · Split
| @@ -492,6 +492,17 @@ struct kvm_dirty_log { · 491 unmodified lines | ||
| 492 | 492 | }; |
| 493 | 493 | }; |
| 494 | 494 | |
| 495 | +/* for KVM_CLEAR_DIRTY_LOG */ | |
| 496 | +struct kvm_clear_dirty_log { | |
| 497 | + __u32 slot; | |
| 498 | + __u32 num_pages; | |
| 499 | + __u64 first_page; | |
| 500 | + union { | |
| 501 | + void __user *dirty_bitmap; /* one bit per page */ | |
| 502 | + __u64 padding2; | |
| 503 | + }; | |
| 504 | +}; | |
| 505 | + | |
| 495 | 506 | /* for KVM_SET_SIGNAL_MASK */ |
| 496 | 507 | struct kvm_signal_mask { |
| 497 | 508 | __u32 len; |
| @@ -975,6 +986,8 @@ struct kvm_ppc_resize_hpt { · 477 unmodified lines | ||
| 975 | 986 | #define KVM_CAP_HYPERV_ENLIGHTENED_VMCS 163 |
| 976 | 987 | #define KVM_CAP_EXCEPTION_PAYLOAD 164 |
| 977 | 988 | #define KVM_CAP_ARM_VM_IPA_SIZE 165 |
| 989 | +#define KVM_CAP_MANUAL_DIRTY_LOG_PROTECT 166 | |
| 990 | +#define KVM_CAP_HYPERV_CPUID 167 | |
| 978 | 991 | |
| 979 | 992 | #ifdef KVM_CAP_IRQ_ROUTING |
| 980 | 993 | |
| @@ -1421,6 +1434,12 @@ struct kvm_enc_region { · 440 unmodified lines | ||
| 1421 | 1434 | #define KVM_GET_NESTED_STATE _IOWR(KVMIO, 0xbe, struct kvm_nested_state) |
| 1422 | 1435 | #define KVM_SET_NESTED_STATE _IOW(KVMIO, 0xbf, struct kvm_nested_state) |
| 1423 | 1436 | |
| 1437 | +/* Available with KVM_CAP_MANUAL_DIRTY_LOG_PROTECT */ | |
| 1438 | +#define KVM_CLEAR_DIRTY_LOG _IOWR(KVMIO, 0xc0, struct kvm_clear_dirty_log) | |
| 1439 | + | |
| 1440 | +/* Available with KVM_CAP_HYPERV_CPUID */ | |
| 1441 | +#define KVM_GET_SUPPORTED_HV_CPUID _IOWR(KVMIO, 0xc1, struct kvm_cpuid2) | |
| 1442 | + | |
| 1424 | 1443 | /* Secure Encrypted Virtualization command */ |
| 1425 | 1444 | enum sev_cmd_id { |
| 1426 | 1445 | /* Guest initialization commands */ |