lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:   Mon, 12 Dec 2022 10:50:27 -0500
From:   Paolo Bonzini <pbonzini@...hat.com>
To:     torvalds@...ux-foundation.org
Cc:     linux-kernel@...r.kernel.org, kvm@...r.kernel.org
Subject: [GIT PULL] First batch of KVM changes for Linux 6.2

Linus,

The following changes since commit 8332f0ed4f187c7b700831bd7cc83ce180a944b9:

  KVM: Update gfn_to_pfn_cache khva when it moves within the same page (2022-11-23 18:58:46 -0500)

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 1396763d469a83c5d791fa84df7dd17eba83dcf2:

  Merge remote-tracking branch 'kvm/queue' into HEAD (2022-12-09 09:15:09 +0100)


There are a few non-KVM changes here:

- introduce FOLL_INTERRUPTIBLE, reviewed by the mm/ people;

- tools/perf: change set_bit to __set_bit etc. in preparation for
  introducing atomic bit operations, acked by perf maintainers;

- a shared topic branch with ARM to introduce automatic generation of
  the system register headers, so you probably want to pull from Catalin
  first;

- MTE work that the ARM folks routed through Marc Zyngier's KVM tree.  This
  also touches mm/ and fs/proc/page.c, in order to introduce a PG_arch_3
  flag, only for 64-bit machines.  The core ARM parts can be found at
  https://lore.kernel.org/all/20220705142619.4135905-1-catalin.marinas@arm.com/
  if you're interested in the list of affected files; they were later
  rebased and extended with the KVM bits.  Note that this is *not*
  a shared topic branch.

----------------------------------------------------------------
ARM64:

* Enable the per-vcpu dirty-ring tracking mechanism, together with an
  option to keep the good old dirty log around for pages that are
  dirtied by something other than a vcpu.

* Switch to the relaxed parallel fault handling, using RCU to delay
  page table reclaim and giving better performance under load.

* Relax the MTE ABI, allowing a VMM to use the MAP_SHARED mapping option,
  which multi-process VMMs such as crosvm rely on.  Includes a shared
  topic branch with the ARM tree (see merge commit 382b5b87a97d:
  "Fix a number of issues with MTE, such as races on the tags being
  initialised vs the PG_mte_tagged flag as well as the lack of support
  for VM_SHARED when KVM is involved.  Patches from Catalin Marinas and
  Peter Collingbourne").

* Merge the pKVM shadow vcpu state tracking that allows the hypervisor
  to have its own view of a vcpu, keeping that state private.

* Add support for the PMUv3p5 architecture revision, bringing support
  for 64bit counters on systems that support it, and fix the
  no-quite-compliant CHAIN-ed counter support for the machines that
  actually exist out there.

* Fix a handful of minor issues around 52bit VA/PA support (64kB pages
  only) as a prefix of the oncoming support for 4kB and 16kB pages.

* Pick a small set of documentation and spelling fixes, because no
  good merge window would be complete without those.

s390:

* Second batch of the lazy destroy patches

* First batch of KVM changes for kernel virtual != physical address support

* Removal of a unused function

x86:

* Allow compiling out SMM support

* Cleanup and documentation of SMM state save area format

* Preserve interrupt shadow in SMM state save area

* Respond to generic signals during slow page faults

* Fixes and optimizations for the non-executable huge page errata fix.

* Reprogram all performance counters on PMU filter change

* Cleanups to Hyper-V emulation and tests

* Process Hyper-V TLB flushes from a nested guest (i.e. from a L2 guest
  running on top of a L1 Hyper-V hypervisor)

* Advertise several new Intel features

* x86 Xen-for-KVM:

** Allow the Xen runstate information to cross a page boundary

** Allow XEN_RUNSTATE_UPDATE flag behaviour to be configured

** Add support for 32-bit guests in SCHEDOP_poll

* Notable x86 fixes and cleanups:

** One-off fixes for various emulation flows (SGX, VMXON, NRIPS=0).

** Reinstate IBPB on emulated VM-Exit that was incorrectly dropped a few
   years back when eliminating unnecessary barriers when switching between
   vmcs01 and vmcs02.

** Clean up vmread_error_trampoline() to make it more obvious that params
   must be passed on the stack, even for x86-64.

** Let userspace set all supported bits in MSR_IA32_FEAT_CTL irrespective
   of the current guest CPUID.

** Fudge around a race with TSC refinement that results in KVM incorrectly
   thinking a guest needs TSC scaling when running on a CPU with a
   constant TSC, but no hardware-enumerated TSC frequency.

** Advertise (on AMD) that the SMM_CTL MSR is not supported

** Remove unnecessary exports

Generic:

* Support for responding to signals during page faults; introduces
  new FOLL_INTERRUPTIBLE flag that was reviewed by mm folks

Selftests:

* Fix an inverted check in the access tracking perf test, and restore
  support for asserting that there aren't too many idle pages when
  running on bare metal.

* Fix build errors that occur in certain setups (unsure exactly what is
  unique about the problematic setup) due to glibc overriding
  static_assert() to a variant that requires a custom message.

* Introduce actual atomics for clear/set_bit() in selftests

* Add support for pinning vCPUs in dirty_log_perf_test.

* Rename the so called "perf_util" framework to "memstress".

* Add a lightweight psuedo RNG for guest use, and use it to randomize
  the access pattern and write vs. read percentage in the memstress tests.

* Add a common ucall implementation; code dedup and pre-work for running
  SEV (and beyond) guests in selftests.

* Provide a common constructor and arch hook, which will eventually be
  used by x86 to automatically select the right hypercall (AMD vs. Intel).

* A bunch of added/enabled/fixed selftests for ARM64, covering memslots,
  breakpoints, stage-2 faults and access tracking.

* x86-specific selftest changes:

** Clean up x86's page table management.

** Clean up and enhance the "smaller maxphyaddr" test, and add a related
   test to cover generic emulation failure.

** Clean up the nEPT support checks.

** Add X86_PROPERTY_* framework to retrieve multi-bit CPUID values.

** Fix an ordering issue in the AMX test introduced by recent conversions
   to use kvm_cpu_has(), and harden the code to guard against similar bugs
   in the future.  Anything that tiggers caching of KVM's supported CPUID,
   kvm_cpu_has() in this case, effectively hides opt-in XSAVE features if
   the caching occurs before the test opts in via prctl().

Documentation:

* Remove deleted ioctls from documentation

* Clean up the docs for the x86 MSR filter.

* Various fixes

----------------------------------------------------------------
Aaron Lewis (5):
      KVM: x86: Disallow the use of KVM_MSR_FILTER_DEFAULT_ALLOW in the kernel
      KVM: x86: Add a VALID_MASK for the MSR exit reason flags
      KVM: x86: Add a VALID_MASK for the flag in kvm_msr_filter
      KVM: x86: Add a VALID_MASK for the flags in kvm_msr_filter_range
      selftests: kvm/x86: Test the flags in MSR filtering and MSR exiting

Anshuman Khandual (1):
      KVM: arm64: PMU: Replace version number '0' with ID_AA64DFR0_EL1_PMUVer_NI

Anton Romanov (1):
      KVM: x86: Use current rather than snapshotted TSC frequency if it is constant

Carlos Bilbao (1):
      KVM: SVM: Name and check reserved fields with structs offset

Catalin Marinas (4):
      mm: Do not enable PG_arch_2 for all 64-bit architectures
      arm64: mte: Fix/clarify the PG_mte_tagged semantics
      KVM: arm64: Simplify the sanitise_mte_tags() logic
      arm64: mte: Lock a page for MTE tag initialisation

Chang S. Bae (1):
      x86: KVM: Advertise AMX-FP16 CPUID to user space

Claudio Imbrenda (6):
      KVM: s390: pv: asynchronous destroy for reboot
      KVM: s390: pv: api documentation for asynchronous destroy
      KVM: s390: pv: add KVM_CAP_S390_PROTECTED_ASYNC_DISABLE
      KVM: s390: pv: avoid export before import if possible
      KVM: s390: pv: support for Destroy fast UVC
      KVM: s390: pv: module parameter to fence asynchronous destroy

Colin Ian King (2):
      KVM: selftests: Fix spelling mistake "begining" -> "beginning"
      KVM: selftests: Fix spelling mistake "probabalistic" -> "probabilistic"

Colton Lewis (4):
      KVM: selftests: implement random number generator for guest code
      KVM: selftests: create -r argument to specify random seed
      KVM: selftests: randomize which pages are written vs read
      KVM: selftests: randomize page access order

David Matlack (15):
      KVM: selftests: Rename perf_test_util.[ch] to memstress.[ch]
      KVM: selftests: Rename pta (short for perf_test_args) to args
      KVM: selftests: Rename perf_test_util symbols to memstress
      KVM: selftests: Rename emulator_error_test to smaller_maxphyaddr_emulation_test
      KVM: selftests: Explicitly require instructions bytes
      KVM: selftests: Delete dead ucall code
      KVM: selftests: Move flds instruction emulation failure handling to header
      KVM: x86/mmu: Use BIT{,_ULL}() for PFERR masks
      KVM: selftests: Copy KVM PFERR masks into selftests
      KVM: selftests: Expect #PF(RSVD) when TDP is disabled
      KVM: selftests: Add a test for KVM_CAP_EXIT_ON_EMULATION_FAILURE
      KVM: selftests: Assert in prepare_eptp() that nEPT is supported
      KVM: selftests: Check for KVM nEPT support using "feature" MSRs
      KVM: x86/mmu: Split huge pages mapped by the TDP MMU on fault
      KVM: x86/mmu: Do not recover dirty-tracked NX Huge Pages

David Woodhouse (5):
      KVM: x86/xen: Add CPL to Xen hypercall tracepoint
      MAINTAINERS: Add KVM x86/xen maintainer list
      KVM: x86/xen: Compatibility fixes for shared runstate area
      KVM: x86/xen: Allow XEN_RUNSTATE_UPDATE flag behaviour to be configured
      KVM: x86/xen: Add runstate tests for 32-bit mode and crossing page boundary

Fuad Tabba (3):
      KVM: arm64: Add hyp_spinlock_t static initializer
      KVM: arm64: Add infrastructure to create and track pKVM instances at EL2
      KVM: arm64: Instantiate pKVM hypervisor VM and vCPU structures from EL1

Gautam Menghani (1):
      KVM: selftests: Don't assume vcpu->id is '0' in xAPIC state test

Gavin Shan (14):
      KVM: x86: Introduce KVM_REQ_DIRTY_RING_SOFT_FULL
      KVM: Move declaration of kvm_cpu_dirty_log_size() to kvm_dirty_ring.h
      KVM: Support dirty ring in conjunction with bitmap
      KVM: arm64: Enable ring-based dirty memory tracking
      KVM: selftests: Use host page size to map ring buffer in dirty_log_test
      KVM: selftests: Clear dirty ring states between two modes in dirty_log_test
      KVM: selftests: Automate choosing dirty ring size in dirty_log_test
      KVM: selftests: memslot_perf_test: Use data->nslots in prepare_vm()
      KVM: selftests: memslot_perf_test: Consolidate loop conditions in prepare_vm()
      KVM: selftests: memslot_perf_test: Probe memory slots for once
      KVM: selftests: memslot_perf_test: Support variable guest page size
      KVM: selftests: memslot_perf_test: Consolidate memory
      KVM: selftests: memslot_perf_test: Report optimal memory slots
      KVM: Push dirty information unconditionally to backup bitmap

Heiko Carstens (1):
      KVM: s390: remove unused gisa_clear_ipm_gisc() function

James Morse (38):
      arm64/sysreg: Standardise naming for ID_MMFR0_EL1
      arm64/sysreg: Standardise naming for ID_MMFR4_EL1
      arm64/sysreg: Standardise naming for ID_MMFR5_EL1
      arm64/sysreg: Standardise naming for ID_ISAR0_EL1
      arm64/sysreg: Standardise naming for ID_ISAR4_EL1
      arm64/sysreg: Standardise naming for ID_ISAR5_EL1
      arm64/sysreg: Standardise naming for ID_ISAR6_EL1
      arm64/sysreg: Standardise naming for ID_PFR0_EL1
      arm64/sysreg: Standardise naming for ID_PFR1_EL1
      arm64/sysreg: Standardise naming for ID_PFR2_EL1
      arm64/sysreg: Standardise naming for ID_DFR0_EL1
      arm64/sysreg: Standardise naming for ID_DFR1_EL1
      arm64/sysreg: Standardise naming for MVFR0_EL1
      arm64/sysreg: Standardise naming for MVFR1_EL1
      arm64/sysreg: Standardise naming for MVFR2_EL1
      arm64/sysreg: Extend the maximum width of a register and symbol name
      arm64/sysreg: Convert ID_MMFR0_EL1 to automatic generation
      arm64/sysreg: Convert ID_MMFR1_EL1 to automatic generation
      arm64/sysreg: Convert ID_MMFR2_EL1 to automatic generation
      arm64/sysreg: Convert ID_MMFR3_EL1 to automatic generation
      arm64/sysreg: Convert ID_MMFR4_EL1 to automatic generation
      arm64/sysreg: Convert ID_ISAR0_EL1 to automatic generation
      arm64/sysreg: Convert ID_ISAR1_EL1 to automatic generation
      arm64/sysreg: Convert ID_ISAR2_EL1 to automatic generation
      arm64/sysreg: Convert ID_ISAR3_EL1 to automatic generation
      arm64/sysreg: Convert ID_ISAR4_EL1 to automatic generation
      arm64/sysreg: Convert ID_ISAR5_EL1 to automatic generation
      arm64/sysreg: Convert ID_ISAR6_EL1 to automatic generation
      arm64/sysreg: Convert ID_PFR0_EL1 to automatic generation
      arm64/sysreg: Convert ID_PFR1_EL1 to automatic generation
      arm64/sysreg: Convert ID_PFR2_EL1 to automatic generation
      arm64/sysreg: Convert MVFR0_EL1 to automatic generation
      arm64/sysreg: Convert MVFR1_EL1 to automatic generation
      arm64/sysreg: Convert MVFR2_EL1 to automatic generation
      arm64/sysreg: Convert ID_MMFR5_EL1 to automatic generation
      arm64/sysreg: Convert ID_AFR0_EL1 to automatic generation
      arm64/sysreg: Convert ID_DFR0_EL1 to automatic generation
      arm64/sysreg: Convert ID_DFR1_EL1 to automatic generation

Javier Martinez Canillas (4):
      KVM: Delete all references to removed KVM_SET_MEMORY_REGION ioctl
      KVM: Delete all references to removed KVM_SET_MEMORY_ALIAS ioctl
      KVM: Reference to kvm_userspace_memory_region in doc and comments
      KVM: Add missing arch for KVM_CREATE_DEVICE and KVM_{SET,GET}_DEVICE_ATTR

Jiaxi Chen (5):
      x86: KVM: Advertise CMPccXADD CPUID to user space
      x86: KVM: Advertise AVX-IFMA CPUID to user space
      KVM: x86: Advertise AVX-VNNI-INT8 CPUID to user space
      KVM: x86: Advertise AVX-NE-CONVERT CPUID to user space
      KVM: x86: Advertise PREFETCHIT0/1 CPUID to user space

Jim Mattson (4):
      KVM: x86: Insert "AMD" in KVM_X86_FEATURE_PSFD
      KVM: VMX: Guest usage of IA32_SPEC_CTRL is likely
      KVM: VMX: Execute IBPB on emulated VM-exit when guest has IBRS
      KVM: x86: Advertise that the SMM_CTL MSR is not supported

Lei Wang (1):
      KVM: selftests: Move XFD CPUID checking out of __vm_xsave_require_permission()

Like Xu (2):
      KVM: x86/pmu: Defer reprogram_counter() to kvm_pmu_handle_event()
      KVM: x86/pmu: Defer counter emulated overflow via pmc->prev_counter

Marc Zyngier (32):
      Merge tag 'kvmarm-fixes-6.1-3' into kvm-arm64/dirty-ring
      arm64: Add ID_DFR0_EL1.PerfMon values for PMUv3p7 and IMP_DEF
      KVM: arm64: PMU: Align chained counter implementation with architecture pseudocode
      KVM: arm64: PMU: Always advertise the CHAIN event
      KVM: arm64: PMU: Distinguish between 64bit counter and 64bit overflow
      KVM: arm64: PMU: Narrow the overflow checking when required
      KVM: arm64: PMU: Only narrow counters that are not 64bit wide
      KVM: arm64: PMU: Add counter_index_to_*reg() helpers
      KVM: arm64: PMU: Simplify setting a counter to a specific value
      KVM: arm64: PMU: Do not let AArch32 change the counters' top 32 bits
      KVM: arm64: PMU: Move the ID_AA64DFR0_EL1.PMUver limit to VM creation
      KVM: arm64: PMU: Allow ID_AA64DFR0_EL1.PMUver to be set from userspace
      KVM: arm64: PMU: Allow ID_DFR0_EL1.PerfMon to be set from userspace
      KVM: arm64: PMU: Implement PMUv3p5 long counter support
      KVM: arm64: PMU: Allow PMUv3p5 to be exposed to the guest
      KVM: arm64: PMU: Simplify vcpu computation on perf overflow notification
      KVM: arm64: PMU: Make kvm_pmc the main data structure
      KVM: arm64: PMU: Simplify PMCR_EL0 reset handling
      KVM: arm64: PMU: Sanitise PMCR_EL0.LP on first vcpu run
      KVM: arm64: PMU: Fix period computation for 64bit counters with 32bit overflow
      Merge branch kvm-arm64/selftest/memslot-fixes into kvmarm-master/next
      Merge branch kvm-arm64/selftest/linked-bps into kvmarm-master/next
      Merge branch kvm-arm64/selftest/s2-faults into kvmarm-master/next
      Merge branch kvm-arm64/selftest/access-tracking into kvmarm-master/next
      Merge branch kvm-arm64/52bit-fixes into kvmarm-master/next
      Merge branch kvm-arm64/dirty-ring into kvmarm-master/next
      Merge branch kvm-arm64/parallel-faults into kvmarm-master/next
      Merge branch kvm-arm64/pkvm-vcpu-state into kvmarm-master/next
      Merge branch kvm-arm64/mte-map-shared into kvmarm-master/next
      Merge branch kvm-arm64/pmu-unchained into kvmarm-master/next
      Merge branch kvm-arm64/misc-6.2 into kvmarm-master/next
      Merge remote-tracking branch 'arm64/for-next/sysregs' into kvmarm-master/next

Maxim Levitsky (10):
      bug: introduce ASSERT_STRUCT_OFFSET
      KVM: x86: smm: check for failures on smm entry
      KVM: x86: smm: add structs for KVM's smram layout
      KVM: x86: smm: use smram structs in the common code
      KVM: x86: smm: use smram struct for 32 bit smram load/restore
      KVM: x86: smm: use smram struct for 64 bit smram load/restore
      KVM: svm: drop explicit return value of kvm_vcpu_map
      KVM: x86: SVM: use smram structs
      KVM: x86: SVM: don't save SVM state to SMRAM when VM is not long mode capable
      KVM: x86: smm: preserve interrupt shadow in SMRAM

Metin Kaya (1):
      KVM: x86/xen: add support for 32-bit guests in SCHEDOP_poll

Miaohe Lin (3):
      KVM: x86: remove obsolete kvm_mmu_gva_to_gpa_fetch()
      KVM: x86/mmu: fix some comment typos
      KVM: x86/mmu: use helper macro SPTE_ENT_PER_PAGE

Michal Luczaj (6):
      KVM: Shorten gfn_to_pfn_cache function names
      KVM: x86: Remove unused argument in gpc_unmap_khva()
      KVM: Store immutable gfn_to_pfn_cache properties
      KVM: Use gfn_to_pfn_cache's immutable "kvm" in kvm_gpc_check()
      KVM: Clean up hva_to_pfn_retry()
      KVM: Use gfn_to_pfn_cache's immutable "kvm" in kvm_gpc_refresh()

Mingwei Zhang (1):
      KVM: x86/mmu: explicitly check nx_hugepage in disallowed_hugepage_adjust()

Nico Boehr (8):
      s390/mm: gmap: sort out physical vs virtual pointers usage
      s390/entry: sort out physical vs virtual pointers usage in sie64a
      KVM: s390: sort out physical vs virtual pointers usage
      KVM: s390: sida: sort out physical vs virtual pointers usage
      KVM: s390: pv: sort out physical vs virtual pointers usage
      KVM: s390: VSIE: sort out virtual/physical address in pin_guest_page
      s390/mm: fix virtual-physical address confusion for swiotlb
      s390/vfio-ap: GISA: sort out physical vs virtual pointers usage

Oliver Upton (21):
      KVM: arm64: Combine visitor arguments into a context structure
      KVM: arm64: Stash observed pte value in visitor context
      KVM: arm64: Pass mm_ops through the visitor context
      KVM: arm64: Don't pass kvm_pgtable through kvm_pgtable_walk_data
      KVM: arm64: Add a helper to tear down unlinked stage-2 subtrees
      KVM: arm64: Use an opaque type for pteps
      KVM: arm64: Tear down unlinked stage-2 subtree after break-before-make
      KVM: arm64: Protect stage-2 traversal with RCU
      KVM: arm64: Atomically update stage 2 leaf attributes in parallel walks
      KVM: arm64: Split init and set for table PTE
      KVM: arm64: Make block->table PTE changes parallel-aware
      KVM: arm64: Make leaf->leaf PTE changes parallel-aware
      KVM: arm64: Make table->block changes parallel-aware
      KVM: arm64: Handle stage-2 faults in parallel
      KVM: arm64: Take a pointer to walker data in kvm_dereference_pteref()
      KVM: arm64: Don't acquire RCU read lock for exclusive table walks
      KVM: arm64: Reject shared table walks in the hyp code
      KVM: selftests: Have perf_test_util signal when to stop vCPUs
      KVM: selftests: Build access_tracking_perf_test for arm64
      KVM: arm64: selftests: Align VA space allocator with TTBR0
      KVM: selftests: Allocate ucall pool from MEM_REGION_DATA

Paolo Bonzini (25):
      KVM: x86: start moving SMM-related functions to new files
      KVM: x86: move SMM entry to a new file
      KVM: x86: move SMM exit to a new file
      KVM: x86: do not go through ctxt->ops when emulating rsm
      KVM: allow compiling out SMM support
      KVM: x86: compile out vendor-specific code if SMM is disabled
      KVM: x86: remove SMRAM address space if SMM is not supported
      KVM: x86: do not define KVM_REQ_SMI if SMM disabled
      KVM: zero output of KVM_GET_VCPU_EVENTS before filling in the struct
      KVM: x86: do not define SMM-related constants if SMM disabled
      KVM: replace direct irq.h inclusion
      Merge tag 'kvm-selftests-6.2-1' of https://github.com/kvm-x86/linux into HEAD
      KVM: x86/mmu: simplify kvm_tdp_mmu_map flow when guest has to retry
      Merge branch 'kvm-svm-harden' into HEAD
      KVM: x86: avoid memslot check in NX hugepage recovery if it cannot succeed
      Merge branch 'kvm-dwmw2-fixes' into HEAD
      KVM: always declare prototype for kvm_arch_irqchip_in_kernel
      Merge tag 'kvm-s390-next-6.2-1' of https://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux into HEAD
      KVM: x86: fix uninitialized variable use on KVM_REQ_TRIPLE_FAULT
      Merge tag 'kvm-selftests-6.2-2' of https://github.com/kvm-x86/linux into HEAD
      Merge tag 'kvm-x86-fixes-6.2-1' of https://github.com/kvm-x86/linux into HEAD
      KVM: x86: remove unnecessary exports
      Merge branch 'gpc-fixes' of git://git.infradead.org/users/dwmw2/linux into HEAD
      Merge tag 'kvmarm-6.2' of https://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into HEAD
      Merge remote-tracking branch 'kvm/queue' into HEAD

Peng Hao (1):
      KVM: x86: Keep the lock order consistent between SRCU and gpc spinlock

Peter Collingbourne (4):
      mm: Add PG_arch_3 page flag
      KVM: arm64: unify the tests for VMAs in memslots when MTE is enabled
      KVM: arm64: permit all VM_MTE_ALLOWED mappings with MTE enabled
      Documentation: document the ABI changes for KVM_CAP_ARM_MTE

Peter Gonda (2):
      tools: Add atomic_test_and_set_bit()
      KVM: selftests: Add ucall pool based implementation

Peter Xu (4):
      mm/gup: Add FOLL_INTERRUPTIBLE
      kvm: Add KVM_PFN_ERR_SIGPENDING
      kvm: Add interruptible flag to __gfn_to_pfn_memslot()
      kvm: x86: Allow to respond to generic signals during slow PF

Quentin Perret (14):
      KVM: arm64: Move hyp refcount manipulation helpers to common header file
      KVM: arm64: Allow attaching of non-coalescable pages to a hyp pool
      KVM: arm64: Back the hypervisor 'struct hyp_page' array for all memory
      KVM: arm64: Fix-up hyp stage-1 refcounts for all pages mapped at EL2
      KVM: arm64: Prevent the donation of no-map pages
      KVM: arm64: Add helpers to pin memory shared with the hypervisor at EL2
      KVM: arm64: Add per-cpu fixmap infrastructure at EL2
      KVM: arm64: Add generic hyp_memcache helpers
      KVM: arm64: Consolidate stage-2 initialisation into a single function
      KVM: arm64: Instantiate guest stage-2 page-tables at EL2
      KVM: arm64: Return guest memory from EL2 via dedicated teardown memcache
      KVM: arm64: Unmap 'kvm_arm_hyp_percpu_base' from the host
      KVM: arm64: Explicitly map 'kvm_vgic_global_state' at EL2
      KVM: arm64: Don't unnecessarily map host kernel sections at EL2

Rafael Mendonca (1):
      x86/kvm: Remove unused virt to phys translation in kvm_guest_cpu_init()

Reiji Watanabe (9):
      KVM: arm64: selftests: Use FIELD_GET() to extract ID register fields
      KVM: arm64: selftests: Add write_dbg{b,w}{c,v}r helpers in debug-exceptions
      KVM: arm64: selftests: Remove the hard-coded {b,w}pn#0 from debug-exceptions
      KVM: arm64: selftests: Add helpers to enable debug exceptions
      KVM: arm64: selftests: Stop unnecessary test stage tracking of debug-exceptions
      KVM: arm64: selftests: Change debug_version() to take ID_AA64DFR0_EL1
      KVM: arm64: selftests: Add a test case for a linked breakpoint
      KVM: arm64: selftests: Add a test case for a linked watchpoint
      KVM: arm64: selftests: Test with every breakpoint/watchpoint

Ricardo Koller (14):
      KVM: selftests: Add a userfaultfd library
      KVM: selftests: aarch64: Add virt_get_pte_hva() library function
      KVM: selftests: Add missing close and munmap in __vm_mem_region_delete()
      KVM: selftests: aarch64: Construct DEFAULT_MAIR_EL1 using sysreg.h macros
      tools: Copy bitfield.h from the kernel sources
      KVM: selftests: Stash backing_src_type in struct userspace_mem_region
      KVM: selftests: Add vm->memslots[] and enum kvm_mem_region_type
      KVM: selftests: Fix alignment in virt_arch_pgd_alloc() and vm_vaddr_alloc()
      KVM: selftests: Use the right memslot for code, page-tables, and data allocations
      KVM: selftests: aarch64: Add aarch64/page_fault_test
      KVM: selftests: aarch64: Add userfaultfd tests into page_fault_test
      KVM: selftests: aarch64: Add dirty logging tests into page_fault_test
      KVM: selftests: aarch64: Add readonly memslot tests into page_fault_test
      KVM: selftests: aarch64: Add mix of tests into page_fault_test

Ryan Roberts (3):
      KVM: arm64: Fix kvm init failure when mode!=vhe and VA_BITS=52.
      KVM: arm64: Fix PAR_TO_HPFAR() to work independently of PA_BITS.
      KVM: arm64: Fix benign bug with incorrect use of VA_BITS

Sean Christopherson (80):
      perf/x86/core: Zero @lbr instead of returning -1 in x86_perf_get_lbr() stub
      KVM: x86: Track supported PERF_CAPABILITIES in kvm_caps
      KVM: x86: Init vcpu->arch.perf_capabilities in common x86 code
      KVM: x86: Handle PERF_CAPABILITIES in common x86's kvm_get_msr_feature()
      KVM: x86: Directly query supported PERF_CAPABILITIES for WRMSR checks
      KVM: x86/mmu: Tag disallowed NX huge pages even if they're not tracked
      KVM: x86/mmu: Rename NX huge pages fields/functions for consistency
      KVM: x86/mmu: Properly account NX huge page workaround for nonpaging MMUs
      KVM: x86/mmu: Set disallowed_nx_huge_page in TDP MMU before setting SPTE
      KVM: x86/mmu: Track the number of TDP MMU pages, but not the actual pages
      KVM: x86/mmu: Add helper to convert SPTE value to its shadow page
      KVM: x86/mmu: WARN if TDP MMU SP disallows hugepage after being zapped
      KVM: x86/pmu: Force reprogramming of all counters on PMU filter change
      KVM: x86/pmu: Clear "reprogram" bit if counter is disabled or disallowed
      KVM: arm64: selftests: Disable single-step with correct KVM define
      KVM: arm64: selftests: Disable single-step without relying on ucall()
      KVM: selftests: Consolidate common code for populating ucall struct
      KVM: selftests: Consolidate boilerplate code in get_ucall()
      KVM: selftests: Automatically do init_ucall() for non-barebones VMs
      KVM: selftests: Make arm64's MMIO ucall multi-VM friendly
      KVM: selftests: Drop now-unnecessary ucall_uninit()
      KVM: selftests: Drop helpers to read/write page table entries
      KVM: selftests: Drop reserved bit checks from PTE accessor
      KVM: selftests: Remove useless shifts when creating guest page tables
      KVM: selftests: Verify parent PTE is PRESENT when getting child PTE
      KVM: selftests: Use virt_get_pte() when getting PTE pointer
      KVM: selftests: Use vm_get_page_table_entry() in addr_arch_gva2gpa()
      KVM: selftests: Play nice with huge pages when getting PTEs/GPAs
      KVM: selftests: Avoid JMP in non-faulting path of KVM_ASM_SAFE()
      KVM: selftests: Provide error code as a KVM_ASM_SAFE() output
      KVM: selftests: Add X86_FEATURE_PAE and use it calc "fallback" MAXPHYADDR
      KVM: selftests: Refactor X86_FEATURE_* framework to prep for X86_PROPERTY_*
      KVM: selftests: Add X86_PROPERTY_* framework to retrieve CPUID values
      KVM: selftests: Use X86_PROPERTY_MAX_KVM_LEAF in CPUID test
      KVM: selftests: Refactor kvm_cpuid_has() to prep for X86_PROPERTY_* support
      KVM: selftests: Add kvm_cpu_*() support for X86_PROPERTY_*
      KVM: selftests: Convert AMX test to use X86_PROPRETY_XXX
      KVM: selftests: Convert vmx_pmu_caps_test to use X86_PROPERTY_*
      KVM: selftests: Add PMU feature framework, use in PMU event filter test
      KVM: selftests: Add dedicated helpers for getting x86 Family and Model
      KVM: selftests: Add and use KVM helpers for x86 Family and Model
      KVM: selftests: Drop helpers for getting specific KVM supported CPUID entry
      x86/hyperv: Move VMCB enlightenment definitions to hyperv-tlfs.h
      KVM: selftests: Move "struct hv_enlightenments" to x86_64/svm.h
      KVM: SVM: Add a proper field for Hyper-V VMCB enlightenments
      x86/hyperv: KVM: Rename "hv_enlightenments" to "hv_vmcb_enlightenments"
      KVM: x86: Move clearing of TLB_FLUSH_CURRENT to kvm_vcpu_flush_tlb_all()
      KVM: x86: hyper-v: Add helper to read hypercall data for array
      KVM: x86: Add BUILD_BUG_ON() to detect bad usage of "scattered" flags
      KVM: x86: Update KVM-only leaf handling to allow for 100% KVM-only leafs
      KVM: Drop KVM's API to allow temporarily unmapping gfn=>pfn cache
      KVM: Do not partially reinitialize gfn=>pfn cache during activation
      KVM: Drop @gpa from exported gfn=>pfn cache check() and refresh() helpers
      KVM: Skip unnecessary "unmap" if gpc is already valid during refresh
      KVM: VMX: Resume guest immediately when injecting #GP on ECREATE
      KVM: x86: Fail emulation during EMULTYPE_SKIP on any exception
      KVM: SVM: Skip WRMSR fastpath on VM-Exit if next RIP isn't valid
      KVM: nVMX: Inject #GP, not #UD, if "generic" VMXON CR0/CR4 check fails
      KVM: x86: Delete documentation for READ|WRITE in KVM_X86_SET_MSR_FILTER
      KVM: x86: Reword MSR filtering docs to more precisely define behavior
      KVM: x86: Clean up KVM_CAP_X86_USER_SPACE_MSR documentation
      KVM: nVMX: Reword comments about generating nested CR0/4 read shadows
      KVM: VMX: Make vmread_error_trampoline() uncallable from C code
      KVM: VMX: Allow userspace to set all supported FEATURE_CONTROL bits
      KVM: VMX: Move MSR_IA32_FEAT_CTL.LOCKED check into "is valid" helper
      KVM: selftests: Verify userspace can stuff IA32_FEATURE_CONTROL at will
      KVM: selftests: Fix inverted "warning" in access tracking perf test
      KVM: selftests: Restore assert for non-nested VMs in access tracking test
      KVM: selftests: Move __vm_xsave_require_permission() below CPUID helpers
      KVM: selftests: Disallow "get supported CPUID" before REQ_XCOMP_GUEST_PERM
      KVM: selftests: Do kvm_cpu_has() checks before creating VM+vCPU
      KVM: selftests: Define and use a custom static assert in lib headers
      KVM: Remove stale comment about KVM_REQ_UNHALT
      KVM: arm64: selftests: Enable single-step without a "full" ucall()
      tools: Take @bit as an "unsigned long" in {clear,set}_bit() helpers
      perf tools: Use dedicated non-atomic clear/set bit helpers
      KVM: selftests: Use non-atomic clear/set bit helpers in KVM tests
      tools: Drop conflicting non-atomic test_and_{clear,set}_bit() helpers
      tools: Drop "atomic_" prefix from atomic test_and_set_bit()
      tools: KVM: selftests: Convert clear/set_bit() to actual atomics

Usama Arif (1):
      KVM: arm64: Fix pvtime documentation

Vipin Sharma (7):
      KVM: selftests: Add missing break between -e and -g option in dirty_log_perf_test
      KVM: selftests: Put command line options in alphabetical order in dirty_log_perf_test
      KVM: selftests: Add atoi_paranoid() to catch errors missed by atoi()
      KVM: selftests: Use SZ_* macros from sizes.h in max_guest_memory_test.c
      KVM: selftests: Shorten the test args in memslot_modification_stress_test.c
      KVM: selftests: Add atoi_positive() and atoi_non_negative() for input validation
      KVM: selftests: Allowing running dirty_log_perf_test on specific CPUs

Vishal Annapurve (3):
      KVM: selftests: move common startup logic to kvm_util.c
      KVM: selftests: Add arch specific initialization
      KVM: selftests: Add arch specific post vm creation hook

Vitaly Kuznetsov (41):
      KVM: x86: Rename 'enable_direct_tlbflush' to 'enable_l2_tlb_flush'
      KVM: VMX: Rename "vmx/evmcs.{ch}" to "vmx/hyperv.{ch}"
      KVM: x86: hyper-v: Resurrect dedicated KVM_REQ_HV_TLB_FLUSH flag
      KVM: x86: hyper-v: Introduce TLB flush fifo
      KVM: x86: hyper-v: Handle HVCALL_FLUSH_VIRTUAL_ADDRESS_LIST{,EX} calls gently
      KVM: x86: hyper-v: Expose support for extended gva ranges for flush hypercalls
      KVM: x86: Prepare kvm_hv_flush_tlb() to handle L2's GPAs
      x86/hyperv: Introduce HV_MAX_SPARSE_VCPU_BANKS/HV_VCPUS_PER_SPARSE_BANK constants
      KVM: x86: hyper-v: Use HV_MAX_SPARSE_VCPU_BANKS/HV_VCPUS_PER_SPARSE_BANK instead of raw '64'
      KVM: x86: hyper-v: Don't use sparse_set_to_vcpu_mask() in kvm_hv_send_ipi()
      KVM: x86: hyper-v: Create a separate fifo for L2 TLB flush
      KVM: x86: hyper-v: Use preallocated buffer in 'struct kvm_vcpu_hv' instead of on-stack 'sparse_banks'
      KVM: nVMX: Keep track of hv_vm_id/hv_vp_id when eVMCS is in use
      KVM: nSVM: Keep track of Hyper-V hv_vm_id/hv_vp_id
      KVM: x86: Introduce .hv_inject_synthetic_vmexit_post_tlb_flush() nested hook
      KVM: x86: hyper-v: Introduce kvm_hv_is_tlb_flush_hcall()
      KVM: x86: hyper-v: L2 TLB flush
      KVM: x86: hyper-v: Introduce fast guest_hv_cpuid_has_l2_tlb_flush() check
      KVM: nVMX: hyper-v: Cache VP assist page in 'struct kvm_vcpu_hv'
      KVM: nVMX: hyper-v: Enable L2 TLB flush
      KVM: x86: Make kvm_hv_get_assist_page() return 0/-errno
      KVM: nSVM: hyper-v: Enable L2 TLB flush
      KVM: x86: Expose Hyper-V L2 TLB flush feature
      KVM: selftests: Better XMM read/write helpers
      KVM: selftests: Move HYPERV_LINUX_OS_ID definition to a common header
      KVM: selftests: Move the function doing Hyper-V hypercall to a common header
      KVM: selftests: Hyper-V PV IPI selftest
      KVM: selftests: Fill in vm->vpages_mapped bitmap in virt_map() too
      KVM: selftests: Export vm_vaddr_unused_gap() to make it possible to request unmapped ranges
      KVM: selftests: Hyper-V PV TLB flush selftest
      KVM: selftests: Sync 'struct hv_enlightened_vmcs' definition with hyperv-tlfs.h
      KVM: selftests: Sync 'struct hv_vp_assist_page' definition with hyperv-tlfs.h
      KVM: selftests: Move Hyper-V VP assist page enablement out of evmcs.h
      KVM: selftests: Split off load_evmcs() from load_vmcs()
      KVM: selftests: Create a vendor independent helper to allocate Hyper-V specific test pages
      KVM: selftests: Allocate Hyper-V partition assist page
      KVM: selftests: Stuff RAX/RCX with 'safe' values in vmmcall()/vmcall()
      KVM: selftests: Introduce rdmsr_from_l2() and use it for MSR-Bitmap tests
      KVM: selftests: evmcs_test: Introduce L2 TLB flush test
      KVM: selftests: hyperv_svm_test: Introduce L2 TLB flush test
      KVM: selftests: Rename 'evmcs_test' to 'hyperv_evmcs'

Will Deacon (9):
      KVM: arm64: Unify identifiers used to distinguish host and hypervisor
      KVM: arm64: Implement do_donate() helper for donating memory
      KVM: arm64: Include asm/kvm_mmu.h in nvhe/mem_protect.h
      KVM: arm64: Rename 'host_kvm' to 'host_mmu'
      KVM: arm64: Initialise hypervisor copies of host symbols unconditionally
      KVM: arm64: Provide I-cache invalidation by virtual address at EL2
      KVM: arm64: Maintain a copy of 'kvm_arm_vmid_bits' at EL2
      KVM: arm64: Use the pKVM hyp vCPU structure in handle___kvm_vcpu_run()
      arm64/sysreg: Remove duplicate definitions from asm/sysreg.h

Yuan ZhaoXiong (1):
      KVM: x86: fix APICv/x2AVIC disabled when vm reboot by itself

Zhao Liu (1):
      KVM: SVM: Replace kmap_atomic() with kmap_local_page()

Zhiyuan Dai (1):
      KVM: arm64: Fix typo in comment


 Documentation/virt/kvm/api.rst                     |  264 +++--
 Documentation/virt/kvm/arm/pvtime.rst              |   14 +-
 Documentation/virt/kvm/devices/arm-vgic-its.rst    |    5 +-
 Documentation/virt/kvm/devices/vcpu.rst            |    2 +
 MAINTAINERS                                        |   10 +
 arch/arm64/Kconfig                                 |    1 +
 arch/arm64/include/asm/kvm_arm.h                   |    8 +-
 arch/arm64/include/asm/kvm_asm.h                   |    7 +-
 arch/arm64/include/asm/kvm_host.h                  |   76 +-
 arch/arm64/include/asm/kvm_hyp.h                   |    3 +
 arch/arm64/include/asm/kvm_mmu.h                   |    2 +-
 arch/arm64/include/asm/kvm_pgtable.h               |  175 ++-
 arch/arm64/include/asm/kvm_pkvm.h                  |   38 +
 arch/arm64/include/asm/mte.h                       |   65 +-
 arch/arm64/include/asm/pgtable.h                   |    4 +-
 arch/arm64/include/asm/sysreg.h                    |  138 ---
 arch/arm64/include/uapi/asm/kvm.h                  |    1 +
 arch/arm64/kernel/cpufeature.c                     |  212 ++--
 arch/arm64/kernel/elfcore.c                        |    2 +-
 arch/arm64/kernel/hibernate.c                      |    2 +-
 arch/arm64/kernel/image-vars.h                     |   15 -
 arch/arm64/kernel/mte.c                            |   21 +-
 arch/arm64/kvm/Kconfig                             |    2 +
 arch/arm64/kvm/arm.c                               |   95 +-
 arch/arm64/kvm/guest.c                             |   18 +-
 arch/arm64/kvm/hyp/hyp-constants.c                 |    3 +
 arch/arm64/kvm/hyp/include/nvhe/mem_protect.h      |   25 +-
 arch/arm64/kvm/hyp/include/nvhe/memory.h           |   27 +
 arch/arm64/kvm/hyp/include/nvhe/mm.h               |   18 +-
 arch/arm64/kvm/hyp/include/nvhe/pkvm.h             |   68 ++
 arch/arm64/kvm/hyp/include/nvhe/spinlock.h         |   10 +-
 arch/arm64/kvm/hyp/nvhe/cache.S                    |   11 +
 arch/arm64/kvm/hyp/nvhe/hyp-main.c                 |  110 +-
 arch/arm64/kvm/hyp/nvhe/hyp-smp.c                  |    2 +
 arch/arm64/kvm/hyp/nvhe/mem_protect.c              |  521 ++++++++-
 arch/arm64/kvm/hyp/nvhe/mm.c                       |  167 ++-
 arch/arm64/kvm/hyp/nvhe/page_alloc.c               |   29 +-
 arch/arm64/kvm/hyp/nvhe/pkvm.c                     |  436 ++++++++
 arch/arm64/kvm/hyp/nvhe/setup.c                    |   98 +-
 arch/arm64/kvm/hyp/pgtable.c                       |  652 ++++++------
 arch/arm64/kvm/hyp/vhe/Makefile                    |    2 +-
 arch/arm64/kvm/irq.h                               |   16 -
 arch/arm64/kvm/mmu.c                               |  195 ++--
 arch/arm64/kvm/pkvm.c                              |  138 ++-
 arch/arm64/kvm/pmu-emul.c                          |  482 ++++-----
 arch/arm64/kvm/reset.c                             |   29 -
 arch/arm64/kvm/sys_regs.c                          |  157 ++-
 arch/arm64/kvm/vgic/vgic-its.c                     |   20 +
 arch/arm64/lib/mte.S                               |    2 +-
 arch/arm64/mm/copypage.c                           |    7 +-
 arch/arm64/mm/fault.c                              |    4 +-
 arch/arm64/mm/mteswap.c                            |   16 +-
 arch/arm64/tools/gen-sysreg.awk                    |    2 +-
 arch/arm64/tools/sysreg                            |  754 +++++++++++++
 arch/powerpc/kvm/book3s_64_mmu_hv.c                |    2 +-
 arch/powerpc/kvm/book3s_64_mmu_radix.c             |    2 +-
 arch/powerpc/kvm/irq.h                             |   22 -
 arch/powerpc/kvm/powerpc.c                         |   18 +-
 arch/s390/include/asm/kvm_host.h                   |   14 +-
 arch/s390/include/asm/mem_encrypt.h                |    4 +-
 arch/s390/include/asm/stacktrace.h                 |    1 +
 arch/s390/include/asm/uv.h                         |   10 +
 arch/s390/kernel/asm-offsets.c                     |    1 +
 arch/s390/kernel/entry.S                           |   26 +-
 arch/s390/kernel/uv.c                              |    7 +
 arch/s390/kvm/intercept.c                          |    9 +-
 arch/s390/kvm/interrupt.c                          |    5 -
 arch/s390/kvm/irq.h                                |   19 -
 arch/s390/kvm/kvm-s390.c                           |  116 +-
 arch/s390/kvm/kvm-s390.h                           |    8 +-
 arch/s390/kvm/priv.c                               |    3 +-
 arch/s390/kvm/pv.c                                 |  357 ++++++-
 arch/s390/kvm/vsie.c                               |    4 +-
 arch/s390/mm/gmap.c                                |  147 +--
 arch/s390/mm/init.c                                |   12 +-
 arch/x86/events/intel/lbr.c                        |    6 +-
 arch/x86/include/asm/cpufeatures.h                 |    3 +
 arch/x86/include/asm/hyperv-tlfs.h                 |   37 +
 arch/x86/include/asm/kvm-x86-ops.h                 |    4 +-
 arch/x86/include/asm/kvm_host.h                    |  145 ++-
 arch/x86/include/asm/perf_event.h                  |    6 +-
 arch/x86/include/asm/svm.h                         |  100 +-
 arch/x86/include/uapi/asm/kvm.h                    |   13 +-
 arch/x86/kernel/kvm.c                              |    2 +-
 arch/x86/kvm/Kconfig                               |   11 +
 arch/x86/kvm/Makefile                              |    6 +-
 arch/x86/kvm/cpuid.c                               |   33 +-
 arch/x86/kvm/emulate.c                             |  355 +------
 arch/x86/kvm/hyperv.c                              |  354 +++++--
 arch/x86/kvm/hyperv.h                              |   64 +-
 arch/x86/kvm/irq.c                                 |    7 +-
 arch/x86/kvm/kvm_cache_regs.h                      |    5 -
 arch/x86/kvm/kvm_emulate.h                         |   48 +-
 arch/x86/kvm/lapic.c                               |   16 +-
 arch/x86/kvm/lapic.h                               |    2 +-
 arch/x86/kvm/mmu/mmu.c                             |  176 ++-
 arch/x86/kvm/mmu/mmu_internal.h                    |   33 +-
 arch/x86/kvm/mmu/paging_tmpl.h                     |    6 +-
 arch/x86/kvm/mmu/spte.c                            |   12 +
 arch/x86/kvm/mmu/spte.h                            |   19 +-
 arch/x86/kvm/mmu/tdp_mmu.c                         |  114 +-
 arch/x86/kvm/mmu/tdp_mmu.h                         |    2 +
 arch/x86/kvm/pmu.c                                 |   90 +-
 arch/x86/kvm/pmu.h                                 |    6 +-
 arch/x86/kvm/reverse_cpuid.h                       |   25 +-
 arch/x86/kvm/smm.c                                 |  649 ++++++++++++
 arch/x86/kvm/smm.h                                 |  168 +++
 arch/x86/kvm/svm/hyperv.c                          |   18 +
 arch/x86/kvm/svm/hyperv.h                          |   50 +-
 arch/x86/kvm/svm/nested.c                          |   52 +-
 arch/x86/kvm/svm/pmu.c                             |    4 +-
 arch/x86/kvm/svm/sev.c                             |    6 +-
 arch/x86/kvm/svm/svm.c                             |   63 +-
 arch/x86/kvm/svm/svm.h                             |    5 +-
 arch/x86/kvm/svm/svm_onhyperv.c                    |    8 +-
 arch/x86/kvm/svm/svm_onhyperv.h                    |   25 +-
 arch/x86/kvm/trace.h                               |   36 +-
 arch/x86/kvm/vmx/capabilities.h                    |   24 -
 arch/x86/kvm/vmx/{evmcs.c => hyperv.c}             |   45 +-
 arch/x86/kvm/vmx/{evmcs.h => hyperv.h}             |   12 +-
 arch/x86/kvm/vmx/nested.c                          |  108 +-
 arch/x86/kvm/vmx/nested.h                          |    7 +-
 arch/x86/kvm/vmx/pmu_intel.c                       |   11 +-
 arch/x86/kvm/vmx/sgx.c                             |    4 +-
 arch/x86/kvm/vmx/vmcs12.h                          |    5 +-
 arch/x86/kvm/vmx/vmenter.S                         |    2 +
 arch/x86/kvm/vmx/vmx.c                             |  104 +-
 arch/x86/kvm/vmx/vmx_ops.h                         |   20 +-
 arch/x86/kvm/x86.c                                 |  533 +++-------
 arch/x86/kvm/x86.h                                 |    1 +
 arch/x86/kvm/xen.c                                 |  505 ++++++---
 arch/x86/kvm/xen.h                                 |   13 +-
 drivers/s390/crypto/vfio_ap_ops.c                  |    2 +-
 fs/proc/page.c                                     |    3 +-
 include/asm-generic/hyperv-tlfs.h                  |    5 +
 include/asm-generic/mshyperv.h                     |   11 +-
 include/kvm/arm_pmu.h                              |   15 +-
 include/kvm/arm_vgic.h                             |    1 +
 include/linux/build_bug.h                          |    9 +
 include/linux/kernel-page-flags.h                  |    1 +
 include/linux/kvm_dirty_ring.h                     |   20 +-
 include/linux/kvm_host.h                           |  107 +-
 include/linux/kvm_types.h                          |    1 +
 include/linux/mm.h                                 |    1 +
 include/linux/page-flags.h                         |    3 +-
 include/trace/events/mmflags.h                     |    9 +-
 include/uapi/linux/kvm.h                           |   31 +-
 mm/Kconfig                                         |    8 +
 mm/gup.c                                           |   33 +-
 mm/huge_memory.c                                   |    3 +-
 mm/hugetlb.c                                       |    5 +-
 tools/arch/x86/include/asm/atomic.h                |   11 +
 tools/arch/x86/include/uapi/asm/kvm.h              |    8 -
 tools/include/asm-generic/atomic-gcc.h             |   23 +
 tools/include/asm-generic/bitops/atomic.h          |   15 +-
 tools/include/linux/bitfield.h                     |  176 +++
 tools/include/linux/bitmap.h                       |   34 -
 tools/include/uapi/linux/kvm.h                     |   20 +-
 tools/perf/bench/find-bit-bench.c                  |    2 +-
 tools/perf/builtin-c2c.c                           |    6 +-
 tools/perf/builtin-kwork.c                         |    6 +-
 tools/perf/builtin-record.c                        |    6 +-
 tools/perf/builtin-sched.c                         |    2 +-
 tools/perf/tests/bitmap.c                          |    2 +-
 tools/perf/tests/mem2node.c                        |    2 +-
 tools/perf/util/affinity.c                         |    4 +-
 tools/perf/util/header.c                           |    8 +-
 tools/perf/util/mmap.c                             |    6 +-
 tools/perf/util/pmu.c                              |    2 +-
 .../perf/util/scripting-engines/trace-event-perl.c |    2 +-
 .../util/scripting-engines/trace-event-python.c    |    2 +-
 tools/perf/util/session.c                          |    2 +-
 tools/perf/util/svghelper.c                        |    2 +-
 tools/testing/selftests/kvm/.gitignore             |    8 +-
 tools/testing/selftests/kvm/Makefile               |   16 +-
 .../selftests/kvm/aarch64/aarch32_id_regs.c        |    6 +-
 tools/testing/selftests/kvm/aarch64/arch_timer.c   |   31 +-
 .../selftests/kvm/aarch64/debug-exceptions.c       |  360 +++++--
 tools/testing/selftests/kvm/aarch64/hypercalls.c   |    3 -
 .../selftests/kvm/aarch64/page_fault_test.c        | 1117 ++++++++++++++++++++
 tools/testing/selftests/kvm/aarch64/psci_test.c    |    1 -
 tools/testing/selftests/kvm/aarch64/vgic_init.c    |    2 -
 tools/testing/selftests/kvm/aarch64/vgic_irq.c     |   10 +-
 .../selftests/kvm/access_tracking_perf_test.c      |   52 +-
 tools/testing/selftests/kvm/demand_paging_test.c   |  250 +----
 tools/testing/selftests/kvm/dirty_log_perf_test.c  |  130 ++-
 tools/testing/selftests/kvm/dirty_log_test.c       |   90 +-
 .../selftests/kvm/include/aarch64/processor.h      |   35 +-
 .../testing/selftests/kvm/include/kvm_util_base.h  |   75 +-
 tools/testing/selftests/kvm/include/memstress.h    |   75 ++
 .../testing/selftests/kvm/include/perf_test_util.h |   63 --
 tools/testing/selftests/kvm/include/test_util.h    |   25 +
 tools/testing/selftests/kvm/include/ucall_common.h |   18 +-
 .../selftests/kvm/include/userfaultfd_util.h       |   45 +
 tools/testing/selftests/kvm/include/x86_64/evmcs.h |   48 +-
 .../testing/selftests/kvm/include/x86_64/hyperv.h  |  103 ++
 .../selftests/kvm/include/x86_64/processor.h       |  442 ++++++--
 tools/testing/selftests/kvm/include/x86_64/svm.h   |   26 +-
 .../selftests/kvm/include/x86_64/svm_util.h        |   14 +
 tools/testing/selftests/kvm/include/x86_64/vmx.h   |   25 +-
 tools/testing/selftests/kvm/kvm_page_table_test.c  |    6 +-
 .../testing/selftests/kvm/lib/aarch64/processor.c  |   83 +-
 tools/testing/selftests/kvm/lib/aarch64/ucall.c    |  102 +-
 tools/testing/selftests/kvm/lib/elf.c              |    5 +-
 tools/testing/selftests/kvm/lib/kvm_util.c         |  193 +++-
 .../kvm/lib/{perf_test_util.c => memstress.c}      |  136 ++-
 tools/testing/selftests/kvm/lib/riscv/processor.c  |   29 +-
 tools/testing/selftests/kvm/lib/riscv/ucall.c      |   42 +-
 tools/testing/selftests/kvm/lib/s390x/processor.c  |    8 +-
 tools/testing/selftests/kvm/lib/s390x/ucall.c      |   39 +-
 tools/testing/selftests/kvm/lib/test_util.c        |   36 +
 tools/testing/selftests/kvm/lib/ucall_common.c     |  103 ++
 tools/testing/selftests/kvm/lib/userfaultfd_util.c |  186 ++++
 tools/testing/selftests/kvm/lib/x86_64/hyperv.c    |   46 +
 .../lib/x86_64/{perf_test_util.c => memstress.c}   |   37 +-
 tools/testing/selftests/kvm/lib/x86_64/processor.c |  314 +++---
 tools/testing/selftests/kvm/lib/x86_64/ucall.c     |   39 +-
 tools/testing/selftests/kvm/lib/x86_64/vmx.c       |   56 +-
 .../testing/selftests/kvm/max_guest_memory_test.c  |   21 +-
 .../kvm/memslot_modification_stress_test.c         |   44 +-
 tools/testing/selftests/kvm/memslot_perf_test.c    |  339 +++---
 tools/testing/selftests/kvm/rseq_test.c            |    4 -
 tools/testing/selftests/kvm/s390x/memop.c          |    2 -
 tools/testing/selftests/kvm/s390x/resets.c         |    2 -
 tools/testing/selftests/kvm/s390x/sync_regs_test.c |    3 -
 .../testing/selftests/kvm/set_memory_region_test.c |    5 +-
 tools/testing/selftests/kvm/steal_time.c           |    1 -
 .../selftests/kvm/system_counter_offset_test.c     |    1 -
 tools/testing/selftests/kvm/x86_64/amx_test.c      |  112 +-
 tools/testing/selftests/kvm/x86_64/cpuid_test.c    |   11 +-
 .../selftests/kvm/x86_64/cr4_cpuid_sync_test.c     |    3 -
 .../selftests/kvm/x86_64/emulator_error_test.c     |  193 ----
 .../kvm/x86_64/exit_on_emulation_failure_test.c    |   45 +
 .../testing/selftests/kvm/x86_64/flds_emulation.h  |   55 +
 tools/testing/selftests/kvm/x86_64/hyperv_cpuid.c  |    3 -
 .../kvm/x86_64/{evmcs_test.c => hyperv_evmcs.c}    |  100 +-
 .../testing/selftests/kvm/x86_64/hyperv_features.c |   25 +-
 tools/testing/selftests/kvm/x86_64/hyperv_ipi.c    |  314 ++++++
 .../testing/selftests/kvm/x86_64/hyperv_svm_test.c |  103 +-
 .../selftests/kvm/x86_64/hyperv_tlb_flush.c        |  690 ++++++++++++
 .../selftests/kvm/x86_64/nx_huge_pages_test.c      |    5 +-
 .../selftests/kvm/x86_64/platform_info_test.c      |    3 -
 .../selftests/kvm/x86_64/pmu_event_filter_test.c   |   77 +-
 .../testing/selftests/kvm/x86_64/set_sregs_test.c  |    3 -
 .../kvm/x86_64/smaller_maxphyaddr_emulation_test.c |  111 ++
 tools/testing/selftests/kvm/x86_64/smm_test.c      |    2 +
 .../kvm/x86_64/svm_nested_soft_inject_test.c       |    3 -
 .../testing/selftests/kvm/x86_64/sync_regs_test.c  |    3 -
 .../selftests/kvm/x86_64/userspace_io_test.c       |    3 -
 .../selftests/kvm/x86_64/userspace_msr_exit_test.c |   88 +-
 .../selftests/kvm/x86_64/vmx_dirty_log_test.c      |    1 +
 tools/testing/selftests/kvm/x86_64/vmx_msrs_test.c |   47 +
 .../selftests/kvm/x86_64/vmx_pmu_caps_test.c       |   19 +-
 .../selftests/kvm/x86_64/xapic_state_test.c        |    4 +-
 .../testing/selftests/kvm/x86_64/xen_shinfo_test.c |  141 ++-
 virt/kvm/Kconfig                                   |    6 +
 virt/kvm/dirty_ring.c                              |   46 +-
 virt/kvm/irqchip.c                                 |    3 +-
 virt/kvm/kvm_main.c                                |  107 +-
 virt/kvm/kvm_mm.h                                  |    4 +-
 virt/kvm/pfncache.c                                |  114 +-
 261 files changed, 12921 insertions(+), 5230 deletions(-)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ