[GIT PULL] KVM changes and new selftests for Linux 5.14-rc4
From: Paolo Bonzini
Date: Sat May 29 2021 - 06:32:33 EST
Linus,
The following changes since commit 6efb943b8616ec53a5e444193dccf1af9ad627b5:
Linux 5.13-rc1 (2021-05-09 14:17:44 -0700)
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 000ac42953395a4f0a63d5db640c5e4c88a548c5:
selftests: kvm: fix overlapping addresses in memslot_perf_test (2021-05-29 06:28:06 -0400)
----------------------------------------------------------------
ARM fixes:
* Another state update on exit to userspace fix
* Prevent the creation of mixed 32/64 VMs
* Fix regression with irqbypass not restarting the guest on failed connect
* Fix regression with debug register decoding resulting in overlapping access
* Commit exception state on exit to usrspace
* Fix the MMU notifier return values
* Add missing 'static' qualifiers in the new host stage-2 code
x86 fixes:
* fix guest missed wakeup with assigned devices
* fix WARN reported by syzkaller
* do not use BIT() in UAPI headers
* make the kvm_amd.avic parameter bool
PPC fixes:
* make halt polling heuristics consistent with other architectures
selftests:
* various fixes
* new performance selftest memslot_perf_test
* test UFFD minor faults in demand_paging_test
----------------------------------------------------------------
Axel Rasmussen (9):
KVM: selftests: trivial comment/logging fixes
KVM: selftests: simplify setup_demand_paging error handling
KVM: selftests: compute correct demand paging size
KVM: selftests: allow different backing source types
KVM: selftests: refactor vm_mem_backing_src_type flags
KVM: selftests: add shmem backing source type
KVM: selftests: create alias mappings when using shared memory
KVM: selftests: allow using UFFD minor faults for demand paging
KVM: selftests: add shared hugetlbfs backing source type
David Matlack (5):
KVM: selftests: Fix 32-bit truncation of vm_get_max_gfn()
KVM: selftests: Ignore CPUID.0DH.1H in get_cpuid_test
KVM: selftests: Fix hang in hardware_disable_test
KVM: selftests: Print a message if /dev/kvm is missing
KVM: x86/mmu: Fix comment mentioning skip_4k
Joe Richey (1):
KVM: X86: Use _BITUL() macro in UAPI headers
Maciej S. Szmigiero (2):
KVM: selftests: Keep track of memslots more efficiently
KVM: selftests: add a memslot-related performance benchmark
Marc Zyngier (4):
KVM: arm64: Move __adjust_pc out of line
KVM: arm64: Commit pending PC adjustemnts before returning to userspace
KVM: arm64: Fix debug register indexing
KVM: arm64: Prevent mixed-width VM creation
Marcelo Tosatti (3):
KVM: x86: add start_assignment hook to kvm_x86_ops
KVM: rename KVM_REQ_PENDING_TIMER to KVM_REQ_UNBLOCK
KVM: VMX: update vcpu posted-interrupt descriptor when assigning device
Paolo Bonzini (6):
Merge tag 'kvmarm-fixes-5.13-1' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into HEAD
KVM: SVM: make the avic parameter a bool
selftests: kvm: fix potential issue with ELF loading
selftests: kvm: do only 1 memslot_perf_test run by default
Merge tag 'kvmarm-fixes-5.13-2' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into HEAD
selftests: kvm: fix overlapping addresses in memslot_perf_test
Quentin Perret (2):
KVM: arm64: Mark pkvm_pgtable_mm_ops static
KVM: arm64: Mark the host stage-2 memory pools static
Vitaly Kuznetsov (2):
KVM: SVM: Drop unneeded CONFIG_X86_LOCAL_APIC check
KVM: VMX: Drop unneeded CONFIG_X86_LOCAL_APIC check
Wanpeng Li (7):
KVM: PPC: exit halt polling on need_resched()
KVM: X86: Bail out of direct yield in case of under-committed scenarios
KVM: X86: Fix vCPU preempted state from guest's point of view
KVM: X86: hyper-v: Task srcu lock when accessing kvm_memslots()
KVM: LAPIC: Narrow the timer latency between wait_lapic_expire and world switch
KVM: X86: Fix warning caused by stale emulation context
KVM: X86: Kill off ctxt->ud
Yuan Yao (1):
KVM: X86: Use kvm_get_linear_rip() in single-step and #DB/#BP interception
Zenghui Yu (1):
KVM: arm64: Resolve all pending PC updates before immediate exit
Zhenzhong Duan (1):
selftests: kvm: make allocation of extra memory take effect
Zhu Lingshan (1):
Revert "irqbypass: do not start cons/prod when failed connect"
kernel test robot (1):
KVM: arm64: Fix boolreturn.cocci warnings
Documentation/virt/kvm/api.rst | 4 +-
Documentation/virt/kvm/vcpu-requests.rst | 8 +-
arch/arm64/include/asm/kvm_asm.h | 3 +
arch/arm64/include/asm/kvm_emulate.h | 5 +
arch/arm64/kvm/arm.c | 20 +-
arch/arm64/kvm/hyp/exception.c | 18 +-
arch/arm64/kvm/hyp/include/hyp/adjust_pc.h | 18 -
arch/arm64/kvm/hyp/nvhe/hyp-main.c | 8 +
arch/arm64/kvm/hyp/nvhe/mem_protect.c | 4 +-
arch/arm64/kvm/hyp/nvhe/setup.c | 2 +-
arch/arm64/kvm/hyp/nvhe/switch.c | 3 +-
arch/arm64/kvm/hyp/vhe/switch.c | 3 +-
arch/arm64/kvm/mmu.c | 12 +-
arch/arm64/kvm/reset.c | 28 +-
arch/arm64/kvm/sys_regs.c | 42 +-
arch/powerpc/include/asm/kvm_host.h | 1 +
arch/powerpc/kvm/book3s_hv.c | 2 +-
arch/x86/include/asm/kvm-x86-ops.h | 1 +
arch/x86/include/asm/kvm_host.h | 16 +-
arch/x86/include/asm/kvm_para.h | 10 +-
arch/x86/include/uapi/asm/kvm.h | 2 +
arch/x86/kernel/kvm.c | 129 ++-
arch/x86/kernel/kvmclock.c | 26 +-
arch/x86/kvm/cpuid.c | 20 +-
arch/x86/kvm/emulate.c | 7 +-
arch/x86/kvm/hyperv.c | 8 +
arch/x86/kvm/kvm_emulate.h | 4 +-
arch/x86/kvm/lapic.c | 18 +-
arch/x86/kvm/mmu/mmu.c | 20 +-
arch/x86/kvm/mmu/tdp_mmu.c | 23 +-
arch/x86/kvm/svm/avic.c | 6 +-
arch/x86/kvm/svm/nested.c | 23 +-
arch/x86/kvm/svm/sev.c | 32 +-
arch/x86/kvm/svm/svm.c | 66 +-
arch/x86/kvm/svm/svm.h | 3 +-
arch/x86/kvm/vmx/capabilities.h | 6 +-
arch/x86/kvm/vmx/nested.c | 29 +-
arch/x86/kvm/vmx/posted_intr.c | 14 +
arch/x86/kvm/vmx/posted_intr.h | 1 +
arch/x86/kvm/vmx/vmx.c | 226 ++---
arch/x86/kvm/vmx/vmx.h | 12 +-
arch/x86/kvm/x86.c | 180 +++-
include/linux/kvm_host.h | 8 +-
include/uapi/linux/kvm.h | 5 +-
tools/include/uapi/linux/kvm.h | 5 +-
tools/kvm/kvm_stat/kvm_stat.txt | 2 +-
tools/testing/selftests/kvm/.gitignore | 1 +
tools/testing/selftests/kvm/Makefile | 3 +-
tools/testing/selftests/kvm/demand_paging_test.c | 174 ++--
.../testing/selftests/kvm/hardware_disable_test.c | 32 +-
tools/testing/selftests/kvm/include/kvm_util.h | 4 +-
tools/testing/selftests/kvm/include/test_util.h | 12 +
tools/testing/selftests/kvm/lib/kvm_util.c | 278 ++++--
.../testing/selftests/kvm/lib/kvm_util_internal.h | 17 +-
tools/testing/selftests/kvm/lib/perf_test_util.c | 4 +-
tools/testing/selftests/kvm/lib/rbtree.c | 1 +
tools/testing/selftests/kvm/lib/test_util.c | 51 +-
tools/testing/selftests/kvm/lib/x86_64/handlers.S | 4 +-
tools/testing/selftests/kvm/lib/x86_64/processor.c | 16 +-
.../kvm/memslot_modification_stress_test.c | 18 +-
tools/testing/selftests/kvm/memslot_perf_test.c | 1037 ++++++++++++++++++++
tools/testing/selftests/kvm/x86_64/evmcs_test.c | 88 +-
.../testing/selftests/kvm/x86_64/get_cpuid_test.c | 5 +
.../selftests/kvm/x86_64/get_msr_index_features.c | 8 +-
virt/kvm/kvm_main.c | 9 +-
virt/lib/irqbypass.c | 16 +-
66 files changed, 2234 insertions(+), 627 deletions(-)
create mode 100644 tools/testing/selftests/kvm/lib/rbtree.c
create mode 100644 tools/testing/selftests/kvm/memslot_perf_test.c