- Proper emulation of the OSLock feature of the debug architecture

- Scalibility improvements for the MMU lock when dirty logging is on

- New VMID allocator, which will eventually help with SVA in VMs

- Better support for PMUs in heterogenous systems

- PSCI 1.1 support, enabling support for SYSTEM_RESET2

- Implement CONFIG_DEBUG_LIST at EL2

- Make CONFIG_ARM64_ERRATUM_2077057 default y

- Reduce the overhead of VM exit when no interrupt is pending

- Remove traces of 32bit ARM host support from the documentation

- Updated vgic selftests

- Various cleanups, doc updates and spelling fixes


- Prevent KVM_COMPAT from being selected

- Optimize __kvm_riscv_switch_to() implementation

- RISC-V SBI v0.3 support


- memop selftest

- fix SCK locking

- adapter interruptions virtualization for secure guests

- add Claudio Imbrenda as maintainer

- first step to do proper storage key checking


- Continue switching kvm_x86_ops to static_call(); introduce
  static_call_cond() and __static_call_ret0 when applicable.

- Cleanup unused arguments in several functions

- Synthesize AMD 0x80000021 leaf

- Fixes and optimization for Hyper-V sparse-bank hypercalls

- Implement Hyper-V's enlightened MSR bitmap for nested SVM

- Remove MMU auditing

- Eager splitting of page tables (new aka "TDP" MMU only) when dirty
  page tracking is enabled

- Cleanup the implementation of the guest PGD cache

- Preparation for the implementation of Intel IPI virtualization

- Fix some segment descriptor checks in the emulator

- Allow AMD AVIC support on systems with physical APIC ID above 255

- Better API to disable virtualization quirks

- Fixes and optimizations for the zapping of page tables:

  - Zap roots in two passes, avoiding RCU read-side critical sections
    that last too long for very large guests backed by 4 KiB SPTEs.

  - Zap invalid and defunct roots asynchronously via concurrency-managed
    work queue.

  - Allowing yielding when zapping TDP MMU roots in response to the root's
    last reference being put.

  - Batch more TLB flushes with an RCU trick.  Whoever frees the paging
    structure now holds RCU as a proxy for all vCPUs running in the guest,
    i.e. to prolongs the grace period on their behalf.  It then kicks the
    the vCPUs out of guest mode before doing rcu_read_unlock().


- Introduce __vcalloc and use it for very large allocations that
  need memcg accounting
KVM: use kvcalloc for array allocations

Instead of using array_size, use a function that takes care of the
multiplication.  While at it, switch to kvcalloc since this allocation
should not be very large.

Signed-off-by: Paolo Bonzini <>
1 file changed