[PATCH RESEND 00/30] My patch queue

From: Maxim Levitsky
Date: Mon Feb 07 2022 - 11:01:03 EST


This is set of various patches that are stuck in my patch queue.

KVM_REQ_GET_NESTED_STATE_PAGES patch is mostly RFC, but it does seem
to work for me.

Read-only APIC ID is also somewhat RFC.

Some of these patches are preparation for support for nested AVIC
which I almost done developing, and will start testing very soon.

Resend with cleaned up CCs.

Best regards,
Maxim Levitsky

Maxim Levitsky (30):
KVM: x86: SVM: don't passthrough SMAP/SMEP/PKE bits in !NPT &&
!gCR0.PG case
KVM: x86: nSVM: fix potential NULL derefernce on nested migration
KVM: x86: nSVM: mark vmcb01 as dirty when restoring SMM saved state
KVM: x86: nSVM/nVMX: set nested_run_pending on VM entry which is a
result of RSM
KVM: x86: nSVM: expose clean bit support to the guest
KVM: x86: mark syntethic SMM vmexit as SVM_EXIT_SW
KVM: x86: nSVM: deal with L1 hypervisor that intercepts interrupts but
lets L2 control them
KVM: x86: lapic: don't touch irr_pending in kvm_apic_update_apicv when
inhibiting it
KVM: x86: SVM: move avic definitions from AMD's spec to svm.h
KVM: x86: SVM: fix race between interrupt delivery and AVIC inhibition
KVM: x86: SVM: use vmcb01 in avic_init_vmcb
KVM: x86: SVM: allow AVIC to co-exist with a nested guest running
KVM: x86: lapic: don't allow to change APIC ID when apic acceleration
is enabled
KVM: x86: lapic: don't allow to change local apic id when using older
x2apic api
KVM: x86: SVM: remove avic's broken code that updated APIC ID
KVM: x86: SVM: allow to force AVIC to be enabled
KVM: x86: mmu: trace kvm_mmu_set_spte after the new SPTE was set
KVM: x86: mmu: add strict mmu mode
KVM: x86: mmu: add gfn_in_memslot helper
KVM: x86: mmu: allow to enable write tracking externally
x86: KVMGT: use kvm_page_track_write_tracking_enable
KVM: x86: nSVM: correctly virtualize LBR msrs when L2 is running
KVM: x86: nSVM: implement nested LBR virtualization
KVM: x86: nSVM: implement nested VMLOAD/VMSAVE
KVM: x86: nSVM: support PAUSE filter threshold and count when
cpu_pm=on
KVM: x86: nSVM: implement nested vGIF
KVM: x86: add force_intercept_exceptions_mask
KVM: SVM: implement force_intercept_exceptions_mask
KVM: VMX: implement force_intercept_exceptions_mask
KVM: x86: get rid of KVM_REQ_GET_NESTED_STATE_PAGES

arch/x86/include/asm/kvm-x86-ops.h | 1 +
arch/x86/include/asm/kvm_host.h | 24 +-
arch/x86/include/asm/kvm_page_track.h | 1 +
arch/x86/include/asm/msr-index.h | 1 +
arch/x86/include/asm/svm.h | 36 +++
arch/x86/include/uapi/asm/kvm.h | 1 +
arch/x86/kvm/Kconfig | 3 -
arch/x86/kvm/hyperv.c | 4 +
arch/x86/kvm/lapic.c | 53 ++--
arch/x86/kvm/mmu.h | 8 +-
arch/x86/kvm/mmu/mmu.c | 31 ++-
arch/x86/kvm/mmu/page_track.c | 10 +-
arch/x86/kvm/svm/avic.c | 135 +++-------
arch/x86/kvm/svm/nested.c | 167 +++++++-----
arch/x86/kvm/svm/svm.c | 375 ++++++++++++++++++++++----
arch/x86/kvm/svm/svm.h | 60 +++--
arch/x86/kvm/svm/svm_onhyperv.c | 1 +
arch/x86/kvm/vmx/nested.c | 107 +++-----
arch/x86/kvm/vmx/vmcs.h | 6 +
arch/x86/kvm/vmx/vmx.c | 48 +++-
arch/x86/kvm/x86.c | 42 ++-
arch/x86/kvm/x86.h | 5 +
drivers/gpu/drm/i915/Kconfig | 1 -
drivers/gpu/drm/i915/gvt/kvmgt.c | 5 +
include/linux/kvm_host.h | 10 +-
25 files changed, 764 insertions(+), 371 deletions(-)

--
2.26.3