Linus, The following changes since commit 6cd88243c7e03845a450795e134b488fc2afb736: KVM: x86: do not report a vCPU as preempted outside instruction boundaries (2022-06-08 04:21:07 -0400) are available in the Git repository at: https://git.kernel.org/pub/scm/virt/kvm/kvm.git tags/for-linus for you to fetch changes up to e0f3f46e42064a51573914766897b4ab95d943e3: KVM: selftests: Restrict test region to 48-bit physical addresses when using nested (2022-06-09 10:52:27 -0400) While last week's pull request contained miscellaneous fixes for x86, this one covers other architectures, selftests changes, and a bigger series for APIC virtualization bugs that were discovered during 5.20 development. The idea is to base 5.20 development for KVM on top of this tag. Paolo ---------------------------------------------------------------- ARM64: * Properly reset the SVE/SME flags on vcpu load * Fix a vgic-v2 regression regarding accessing the pending state of a HW interrupt from userspace (and make the code common with vgic-v3) * Fix access to the idreg range for protected guests * Ignore 'kvm-arm.mode=protected' when using VHE * Return an error from kvm_arch_init_vm() on allocation failure * A bunch of small cleanups (comments, annotations, indentation) RISC-V: * Typo fix in arch/riscv/kvm/vmid.c * Remove broken reference pattern from MAINTAINERS entry x86-64: * Fix error in page tables with MKTME enabled * Dirty page tracking performance test extended to running a nested guest * Disable APICv/AVIC in cases that it cannot implement correctly ---------------------------------------------------------------- David Matlack (11): KVM: selftests: Replace x86_page_size with PG_LEVEL_XX KVM: selftests: Add option to create 2M and 1G EPT mappings KVM: selftests: Drop stale function parameter comment for nested_map() KVM: selftests: Refactor nested_map() to specify target level KVM: selftests: Move VMX_EPT_VPID_CAP_AD_BITS to vmx.h KVM: selftests: Add a helper to check EPT/VPID capabilities KVM: selftests: Drop unnecessary rule for STATIC_LIBS KVM: selftests: Link selftests directly with lib object files KVM: selftests: Clean up LIBKVM files in Makefile KVM: selftests: Add option to run dirty_log_perf_test vCPUs in L2 KVM: selftests: Restrict test region to 48-bit physical addresses when using nested Julia Lawall (1): RISC-V: KVM: fix typos in comments Lukas Bulwahn (1): MAINTAINERS: Limit KVM RISC-V entry to existing selftests Marc Zyngier (7): KVM: arm64: Always start with clearing SVE flag on load KVM: arm64: Always start with clearing SME flag on load KVM: arm64: Don't read a HW interrupt pending state in user context KVM: arm64: Replace vgic_v3_uaccess_read_pending with vgic_uaccess_read_pending KVM: arm64: Warn if accessing timer pending state outside of vcpu context KVM: arm64: Handle all ID registers trapped for a protected VM KVM: arm64: Drop stale comment Maxim Levitsky (7): KVM: x86: document AVIC/APICv inhibit reasons KVM: x86: inhibit APICv/AVIC on changes to APIC ID or APIC base KVM: x86: SVM: remove avic's broken code that updated APIC ID KVM: x86: SVM: fix avic_kick_target_vcpus_fast KVM: x86: disable preemption while updating apicv inhibition KVM: x86: disable preemption around the call to kvm_arch_vcpu_{un|}blocking KVM: x86: SVM: drop preempt-safe wrappers for avic_vcpu_load/put Paolo Bonzini (3): Merge tag 'kvm-riscv-fixes-5.19-1' of https://github.com/kvm-riscv/linux into HEAD Merge tag 'kvmarm-fixes-5.19-1' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into HEAD KVM: x86: SVM: fix nested PAUSE filtering when L0 intercepts PAUSE Will Deacon (4): KVM: arm64: Return error from kvm_arch_init_vm() on allocation failure KVM: arm64: Ignore 'kvm-arm.mode=protected' when using VHE KVM: arm64: Extend comment in has_vhe() KVM: arm64: Remove redundant hyp_assert_lock_held() assertions Yuan Yao (1): KVM: x86/mmu: Set memory encryption "value", not "mask", in shadow PDPTRs sunliming (1): KVM: arm64: Fix inconsistent indenting Documentation/admin-guide/kernel-parameters.txt | 1 - MAINTAINERS | 1 - arch/arm64/include/asm/kvm_host.h | 5 - arch/arm64/include/asm/virt.h | 3 + arch/arm64/kernel/cpufeature.c | 10 +- arch/arm64/kvm/arch_timer.c | 3 + arch/arm64/kvm/arm.c | 10 +- arch/arm64/kvm/fpsimd.c | 2 + arch/arm64/kvm/hyp/nvhe/mem_protect.c | 4 - arch/arm64/kvm/hyp/nvhe/sys_regs.c | 42 ++++- arch/arm64/kvm/vgic/vgic-mmio-v2.c | 4 +- arch/arm64/kvm/vgic/vgic-mmio-v3.c | 40 +---- arch/arm64/kvm/vgic/vgic-mmio.c | 40 ++++- arch/arm64/kvm/vgic/vgic-mmio.h | 3 + arch/arm64/kvm/vmid.c | 2 +- arch/riscv/kvm/vmid.c | 2 +- arch/x86/include/asm/kvm_host.h | 67 +++++++- arch/x86/kvm/lapic.c | 27 +++- arch/x86/kvm/mmu/mmu.c | 2 +- arch/x86/kvm/svm/avic.c | 171 +++++++++------------ arch/x86/kvm/svm/nested.c | 39 ++--- arch/x86/kvm/svm/svm.c | 8 +- arch/x86/kvm/svm/svm.h | 4 +- arch/x86/kvm/vmx/vmx.c | 4 +- arch/x86/kvm/x86.c | 2 + tools/testing/selftests/kvm/Makefile | 49 ++++-- tools/testing/selftests/kvm/dirty_log_perf_test.c | 10 +- .../testing/selftests/kvm/include/perf_test_util.h | 9 ++ .../selftests/kvm/include/x86_64/processor.h | 25 +-- tools/testing/selftests/kvm/include/x86_64/vmx.h | 6 + tools/testing/selftests/kvm/lib/perf_test_util.c | 53 ++++++- .../selftests/kvm/lib/x86_64/perf_test_util.c | 112 ++++++++++++++ tools/testing/selftests/kvm/lib/x86_64/processor.c | 31 ++-- tools/testing/selftests/kvm/lib/x86_64/vmx.c | 149 +++++++++++------- .../testing/selftests/kvm/max_guest_memory_test.c | 2 +- tools/testing/selftests/kvm/x86_64/mmu_role_test.c | 2 +- virt/kvm/kvm_main.c | 8 +- 37 files changed, 640 insertions(+), 312 deletions(-)