mbox series

[GIT,PULL] KVM/arm64 updates for 6.3

Message ID 20230218142218.3816630-1-maz@kernel.org
State New
Headers show
Series [GIT,PULL] KVM/arm64 updates for 6.3 | expand

Pull-request

git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm.git tags/kvmarm-6.3

Message

Marc Zyngier Feb. 18, 2023, 2:22 p.m. UTC
Paolo,

Here's the bulk of the KVM/arm64 updates for 6.3, see the tag for the
laundry list. A couple of things to note:

- We drag two branches to avoid ugly conflicts:

  * the common KVM 'kvm-hw-enable-refactor' that you already have in
    your tree

  * the arm64 'for-next/sme2' branch

- The whole thing has been pulled together by Oliver who has, I think,
  done a tremendous job

Please pull,

	M.

The following changes since commit 5dc4c995db9eb45f6373a956eb1f69460e69e6d4:

  Linux 6.2-rc4 (2023-01-15 09:22:43 -0600)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm.git tags/kvmarm-6.3

for you to fetch changes up to 96a4627dbbd48144a65af936b321701c70876026:

  Merge tag ' https://github.com/oupton/linux tags/kvmarm-6.3' from into kvmarm-master/next (2023-02-18 14:06:10 +0000)

----------------------------------------------------------------
KVM/arm64 updates for 6.3

 - Provide a virtual cache topology to the guest to avoid
   inconsistencies with migration on heterogenous systems. Non secure
   software has no practical need to traverse the caches by set/way in
   the first place.

 - Add support for taking stage-2 access faults in parallel. This was an
   accidental omission in the original parallel faults implementation,
   but should provide a marginal improvement to machines w/o FEAT_HAFDBS
   (such as hardware from the fruit company).

 - A preamble to adding support for nested virtualization to KVM,
   including vEL2 register state, rudimentary nested exception handling
   and masking unsupported features for nested guests.

 - Fixes to the PSCI relay that avoid an unexpected host SVE trap when
   resuming a CPU when running pKVM.

 - VGIC maintenance interrupt support for the AIC

 - Improvements to the arch timer emulation, primarily aimed at reducing
   the trap overhead of running nested.

 - Add CONFIG_USERFAULTFD to the KVM selftests config fragment in the
   interest of CI systems.

 - Avoid VM-wide stop-the-world operations when a vCPU accesses its own
   redistributor.

 - Serialize when toggling CPACR_EL1.SMEN to avoid unexpected exceptions
   in the host.

 - Aesthetic and comment/kerneldoc fixes

 - Drop the vestiges of the old Columbia mailing list and add myself as
   co-maintainer

This also drags in a couple of branches to avoid conflicts:

 - The shared 'kvm-hw-enable-refactor' branch that reworks
   initialization, as it conflicted with the virtual cache topology
   changes.

 - arm64's 'for-next/sme2' branch, as the PSCI relay changes, as both
   touched the EL2 initialization code.

----------------------------------------------------------------
Akihiko Odaki (6):
      arm64/sysreg: Convert CCSIDR_EL1 to automatic generation
      arm64/sysreg: Add CCSIDR2_EL1
      arm64/cache: Move CLIDR macro definitions
      KVM: arm64: Always set HCR_TID2
      KVM: arm64: Mask FEAT_CCIDX
      KVM: arm64: Normalize cache configuration

Chao Gao (3):
      KVM: x86: Do compatibility checks when onlining CPU
      KVM: Rename and move CPUHP_AP_KVM_STARTING to ONLINE section
      KVM: Disable CPU hotplug during hardware enabling/disabling

Christoffer Dall (6):
      KVM: arm64: nv: Introduce nested virtualization VCPU feature
      KVM: arm64: nv: Reset VCPU to EL2 registers if VCPU nested virt is set
      KVM: arm64: nv: Allow userspace to set PSR_MODE_EL2x
      KVM: arm64: nv: Add nested virt VCPU primitives for vEL2 VCPU state
      KVM: arm64: nv: Handle trapped ERET from virtual EL2
      KVM: arm64: nv: Only toggle cache for virtual EL2 when SCTLR_EL2 changes

Christophe JAILLET (1):
      KVM: arm64: vgic-v3: Use kstrtobool() instead of strtobool()

David Matlack (10):
      KVM: x86/mmu: Change tdp_mmu to a read-only parameter
      KVM: x86/mmu: Move TDP MMU VM init/uninit behind tdp_mmu_enabled
      KVM: x86/mmu: Grab mmu_invalidate_seq in kvm_faultin_pfn()
      KVM: x86/mmu: Handle error PFNs in kvm_faultin_pfn()
      KVM: x86/mmu: Avoid memslot lookup during KVM_PFN_ERR_HWPOISON handling
      KVM: x86/mmu: Handle no-slot faults in kvm_faultin_pfn()
      KVM: x86/mmu: Initialize fault.{gfn,slot} earlier for direct MMUs
      KVM: x86/mmu: Split out TDP MMU page fault handling
      KVM: x86/mmu: Stop needlessly making MMU pages available for TDP MMU faults
      KVM: x86/mmu: Rename __direct_map() to direct_map()

Isaku Yamahata (3):
      KVM: Drop kvm_count_lock and instead protect kvm_usage_count with kvm_lock
      KVM: Remove on_each_cpu(hardware_disable_nolock) in kvm_exit()
      KVM: Make hardware_enable_failed a local variable in the "enable all" path

Jiapeng Chong (1):
      arm64/sysreg: clean up some inconsistent indenting

Jintack Lim (7):
      arm64: Add ARM64_HAS_NESTED_VIRT cpufeature
      KVM: arm64: nv: Handle HCR_EL2.NV system register traps
      KVM: arm64: nv: Support virtual EL2 exceptions
      KVM: arm64: nv: Inject HVC exceptions to the virtual EL2
      KVM: arm64: nv: Handle SMCs taken from virtual EL2
      KVM: arm64: nv: Add accessors for SPSR_EL1, ELR_EL1 and VBAR_EL1 from virtual EL2
      KVM: arm64: nv: Emulate EL12 register accesses from the virtual EL2

Lai Jiangshan (1):
      kvm: x86/mmu: Warn on linking when sp->unsync_children

Marc Zyngier (19):
      KVM: arm64: Simplify the CPUHP logic
      arm64: Allow the definition of UNKNOWN system register fields
      KVM: arm64: Kill CPACR_EL1_TTA definition
      KVM: arm64: vgic: Allow registration of a non-maskable maintenance interrupt
      irqchip/apple-aic: Register vgic maintenance interrupt with KVM
      KVM: arm64: vgic-v3: Limit IPI-ing when accessing GICR_{C,S}ACTIVER0
      KVM: arm64: Drop Columbia-hosted mailing list
      KVM: arm64: Don't arm a hrtimer for an already pending timer
      KVM: arm64: Reduce overhead of trapped timer sysreg accesses
      KVM: arm64: timers: Don't BUG() on unhandled timer trap
      irqchip/apple-aic: Correctly map the vgic maintenance interrupt
      arm64/sme: Fix __finalise_el2 SMEver check
      KVM: arm64: Fix non-kerneldoc comments
      KVM: arm64: Use the S2 MMU context to iterate over S2 table
      KVM: arm64: nv: Add EL2 system registers to vcpu context
      KVM: arm64: nv: Emulate PSTATE.M for a guest hypervisor
      KVM: arm64: nv: Allow a sysreg to be hidden from userspace only
      KVM: arm64: nv: Filter out unsupported features from ID regs
      Merge tag ' https://github.com/oupton/linux tags/kvmarm-6.3' from into kvmarm-master/next

Mark Brown (23):
      arm64/sme: Rename za_state to sme_state
      arm64: Document boot requirements for SME 2
      arm64/sysreg: Update system registers for SME 2 and 2.1
      arm64/sme: Document SME 2 and SME 2.1 ABI
      arm64/esr: Document ISS for ZT0 being disabled
      arm64/sme: Manually encode ZT0 load and store instructions
      arm64/sme: Enable host kernel to access ZT0
      arm64/sme: Add basic enumeration for SME2
      arm64/sme: Provide storage for ZT0
      arm64/sme: Implement context switching for ZT0
      arm64/sme: Implement signal handling for ZT
      arm64/sme: Implement ZT0 ptrace support
      arm64/sme: Add hwcaps for SME 2 and 2.1 features
      kselftest/arm64: Add a stress test program for ZT0
      kselftest/arm64: Cover ZT in the FP stress test
      kselftest/arm64: Enumerate SME2 in the signal test utility code
      kselftest/arm64: Teach the generic signal context validation about ZT
      kselftest/arm64: Add test coverage for ZT register signal frames
      kselftest/arm64: Add SME2 coverage to syscall-abi
      kselftest/arm64: Add coverage of the ZT ptrace regset
      kselftest/arm64: Add coverage of SME 2 and 2.1 hwcaps
      kselftest/arm64: Remove redundant _start labels from zt-test
      KVM: selftests: Enable USERFAULTFD

Nianyao Tang (1):
      KVM: arm64: Synchronize SMEN on vcpu schedule out

Oliver Upton (19):
      KVM: arm64: Use KVM's pte type/helpers in handle_access_fault()
      KVM: arm64: Ignore EAGAIN for walks outside of a fault
      KVM: arm64: Return EAGAIN for invalid PTE in attr walker
      KVM: arm64: Don't serialize if the access flag isn't set
      KVM: arm64: Handle access faults behind the read lock
      KVM: arm64: Condition HW AF updates on config option
      MAINTAINERS: Add Oliver Upton as co-maintainer of KVM/arm64
      KVM: arm64: Mark some VM-scoped allocations as __GFP_ACCOUNT
      KVM: arm64: nv: Use reg_to_encoding() to get sysreg ID
      Merge branch kvm/kvm-hw-enable-refactor into kvmarm/next
      Merge branch arm64/for-next/sme2 into kvmarm/next
      Merge branch kvm-arm64/virtual-cache-geometry into kvmarm/next
      Merge branch kvm-arm64/parallel-access-faults into kvmarm/next
      Merge branch kvm-arm64/MAINTAINERS into kvmarm/next
      Merge branch kvm-arm64/nv-timer-improvements into kvmarm/next
      Merge branch kvm-arm64/psci-relay-fixes into kvmarm/next
      Merge branch kvm-arm64/apple-vgic-mi into kvmarm/next
      Merge branch kvm-arm64/misc into kvmarm/next
      Merge branch kvm-arm64/nv-prefix into kvmarm/next

Paolo Bonzini (1):
      Merge branch 'kvm-late-6.1' into HEAD

Quentin Perret (4):
      KVM: arm64: Provide sanitized SYS_ID_AA64SMFR0_EL1 to nVHE
      KVM: arm64: Introduce finalise_el2_state macro
      KVM: arm64: Use sanitized values in __check_override in nVHE
      KVM: arm64: Finalise EL2 state from pKVM PSCI relay

Sean Christopherson (46):
      KVM: x86/mmu: Replace open coded usage of tdp_mmu_page with is_tdp_mmu_page()
      KVM: x86/mmu: Pivot on "TDP MMU enabled" to check if active MMU is TDP MMU
      KVM: x86/mmu: Pivot on "TDP MMU enabled" when handling direct page faults
      KVM: Register /dev/kvm as the _very_ last thing during initialization
      KVM: Initialize IRQ FD after arch hardware setup
      KVM: Allocate cpus_hardware_enabled after arch hardware setup
      KVM: Teardown VFIO ops earlier in kvm_exit()
      KVM: s390: Unwind kvm_arch_init() piece-by-piece() if a step fails
      KVM: s390: Move hardware setup/unsetup to init/exit
      KVM: x86: Do timer initialization after XCR0 configuration
      KVM: x86: Move hardware setup/unsetup to init/exit
      KVM: Drop arch hardware (un)setup hooks
      KVM: VMX: Reset eVMCS controls in VP assist page during hardware disabling
      KVM: VMX: Don't bother disabling eVMCS static key on module exit
      KVM: VMX: Move Hyper-V eVMCS initialization to helper
      KVM: x86: Move guts of kvm_arch_init() to standalone helper
      KVM: VMX: Do _all_ initialization before exposing /dev/kvm to userspace
      KVM: x86: Serialize vendor module initialization (hardware setup)
      KVM: arm64: Free hypervisor allocations if vector slot init fails
      KVM: arm64: Unregister perf callbacks if hypervisor finalization fails
      KVM: arm64: Do arm/arch initialization without bouncing through kvm_init()
      KVM: arm64: Mark kvm_arm_init() and its unique descendants as __init
      KVM: MIPS: Hardcode callbacks to hardware virtualization extensions
      KVM: MIPS: Setup VZ emulation? directly from kvm_mips_init()
      KVM: MIPS: Register die notifier prior to kvm_init()
      KVM: RISC-V: Do arch init directly in riscv_kvm_init()
      KVM: RISC-V: Tag init functions and data with __init, __ro_after_init
      KVM: PPC: Move processor compatibility check to module init
      KVM: s390: Do s390 specific init without bouncing through kvm_init()
      KVM: s390: Mark __kvm_s390_init() and its descendants as __init
      KVM: Drop kvm_arch_{init,exit}() hooks
      KVM: VMX: Make VMCS configuration/capabilities structs read-only after init
      KVM: x86: Do CPU compatibility checks in x86 code
      KVM: Drop kvm_arch_check_processor_compat() hook
      KVM: x86: Use KBUILD_MODNAME to specify vendor module name
      KVM: x86: Unify pr_fmt to use module name for all KVM modules
      KVM: VMX: Use current CPU's info to perform "disabled by BIOS?" checks
      KVM: x86: Do VMX/SVM support checks directly in vendor code
      KVM: VMX: Shuffle support checks and hardware enabling code around
      KVM: SVM: Check for SVM support in CPU compatibility checks
      KVM: x86: Move CPU compat checks hook to kvm_x86_ops (from kvm_x86_init_ops)
      KVM: Ensure CPU is stable during low level hardware enable/disable
      KVM: Use a per-CPU variable to track which CPUs have enabled virtualization
      KVM: Register syscore (suspend/resume) ops early in kvm_init()
      KVM: Opt out of generic hardware enabling on s390 and PPC
      KVM: Clean up error labels in kvm_init()

Shaoqin Huang (1):
      KVM: selftests: Remove redundant setbuf()

Thomas Huth (2):
      KVM: selftests: Use TAP interface in the kvm_binary_stats_test
      KVM: selftests: x86: Use TAP interface in the tsc_msrs_test

Vitaly Kuznetsov (11):
      KVM: nVMX: Sanitize primary processor-based VM-execution controls with eVMCS too
      KVM: nVMX: Invert 'unsupported by eVMCSv1' check
      KVM: nVMX: Prepare to sanitize tertiary execution controls with eVMCS
      KVM: VMX: Resurrect vmcs_conf sanitization for KVM-on-Hyper-V
      x86/hyperv: Add HV_EXPOSE_INVARIANT_TSC define
      KVM: x86: Add a KVM-only leaf for CPUID_8000_0007_EDX
      KVM: x86: Hyper-V invariant TSC control
      KVM: selftests: Rename 'msr->available' to 'msr->fault_exepected' in hyperv_features test
      KVM: selftests: Convert hyperv_features test to using KVM_X86_CPU_FEATURE()
      KVM: selftests: Test that values written to Hyper-V MSRs are preserved
      KVM: selftests: Test Hyper-V invariant TSC control

Yu Zhang (1):
      KVM: MMU: Make the definition of 'INVALID_GPA' common

 Documentation/admin-guide/kernel-parameters.txt    |   7 +-
 Documentation/arm64/booting.rst                    |  10 +
 Documentation/arm64/elf_hwcaps.rst                 |  18 +
 Documentation/arm64/sme.rst                        |  52 ++-
 Documentation/virt/kvm/locking.rst                 |  25 +-
 MAINTAINERS                                        |   3 +-
 arch/arm64/include/asm/cache.h                     |   9 +
 arch/arm64/include/asm/cpufeature.h                |   6 +
 arch/arm64/include/asm/el2_setup.h                 |  99 +++++
 arch/arm64/include/asm/esr.h                       |   5 +
 arch/arm64/include/asm/fpsimd.h                    |  30 +-
 arch/arm64/include/asm/fpsimdmacros.h              |  22 +
 arch/arm64/include/asm/hwcap.h                     |   6 +
 arch/arm64/include/asm/kvm_arm.h                   |  23 +-
 arch/arm64/include/asm/kvm_emulate.h               |  70 +++-
 arch/arm64/include/asm/kvm_host.h                  |  67 ++-
 arch/arm64/include/asm/kvm_hyp.h                   |   1 +
 arch/arm64/include/asm/kvm_mmu.h                   |  15 +-
 arch/arm64/include/asm/kvm_nested.h                |  20 +
 arch/arm64/include/asm/kvm_pgtable.h               |   8 +
 arch/arm64/include/asm/processor.h                 |   2 +-
 arch/arm64/include/asm/sysreg.h                    |  39 +-
 arch/arm64/include/uapi/asm/hwcap.h                |   6 +
 arch/arm64/include/uapi/asm/kvm.h                  |   1 +
 arch/arm64/include/uapi/asm/sigcontext.h           |  19 +
 arch/arm64/kernel/cacheinfo.c                      |   5 -
 arch/arm64/kernel/cpufeature.c                     |  53 +++
 arch/arm64/kernel/cpuinfo.c                        |   6 +
 arch/arm64/kernel/entry-fpsimd.S                   |  30 +-
 arch/arm64/kernel/fpsimd.c                         |  47 ++-
 arch/arm64/kernel/hyp-stub.S                       |  79 +---
 arch/arm64/kernel/idreg-override.c                 |   1 +
 arch/arm64/kernel/process.c                        |  21 +-
 arch/arm64/kernel/ptrace.c                         |  60 ++-
 arch/arm64/kernel/signal.c                         | 113 ++++-
 arch/arm64/kvm/Kconfig                             |   1 +
 arch/arm64/kvm/Makefile                            |   2 +-
 arch/arm64/kvm/arch_timer.c                        | 106 ++---
 arch/arm64/kvm/arm.c                               | 109 ++---
 arch/arm64/kvm/emulate-nested.c                    | 203 +++++++++
 arch/arm64/kvm/fpsimd.c                            |   3 +-
 arch/arm64/kvm/guest.c                             |   6 +
 arch/arm64/kvm/handle_exit.c                       |  47 ++-
 arch/arm64/kvm/hyp/exception.c                     |  48 ++-
 arch/arm64/kvm/hyp/include/hyp/sysreg-sr.h         |  21 +-
 arch/arm64/kvm/hyp/nvhe/hyp-init.S                 |   1 +
 arch/arm64/kvm/hyp/nvhe/sys_regs.c                 |   1 +
 arch/arm64/kvm/hyp/pgtable.c                       |  43 +-
 arch/arm64/kvm/hyp/vhe/switch.c                    |  26 +-
 arch/arm64/kvm/hypercalls.c                        |   2 +-
 arch/arm64/kvm/inject_fault.c                      |  61 ++-
 arch/arm64/kvm/mmu.c                               |  46 +--
 arch/arm64/kvm/nested.c                            | 161 ++++++++
 arch/arm64/kvm/pvtime.c                            |   8 +-
 arch/arm64/kvm/reset.c                             |  25 +-
 arch/arm64/kvm/sys_regs.c                          | 459 ++++++++++++++++-----
 arch/arm64/kvm/sys_regs.h                          |  14 +-
 arch/arm64/kvm/trace_arm.h                         |  59 +++
 arch/arm64/kvm/vgic/vgic-init.c                    |  21 +-
 arch/arm64/kvm/vgic/vgic-mmio.c                    |  13 +-
 arch/arm64/kvm/vgic/vgic-v3.c                      |   9 +-
 arch/arm64/kvm/vmid.c                              |   6 +-
 arch/arm64/tools/cpucaps                           |   2 +
 arch/arm64/tools/gen-sysreg.awk                    |  20 +-
 arch/arm64/tools/sysreg                            |  44 +-
 arch/mips/include/asm/kvm_host.h                   |   3 +-
 arch/mips/kvm/Kconfig                              |   1 +
 arch/mips/kvm/Makefile                             |   2 +-
 arch/mips/kvm/callback.c                           |  14 -
 arch/mips/kvm/mips.c                               |  34 +-
 arch/mips/kvm/vz.c                                 |   7 +-
 arch/powerpc/include/asm/kvm_host.h                |   3 -
 arch/powerpc/include/asm/kvm_ppc.h                 |   1 -
 arch/powerpc/kvm/book3s.c                          |  12 +-
 arch/powerpc/kvm/e500.c                            |   6 +-
 arch/powerpc/kvm/e500mc.c                          |   6 +-
 arch/powerpc/kvm/powerpc.c                         |  20 -
 arch/riscv/include/asm/kvm_host.h                  |   7 +-
 arch/riscv/kvm/Kconfig                             |   1 +
 arch/riscv/kvm/main.c                              |  23 +-
 arch/riscv/kvm/mmu.c                               |  12 +-
 arch/riscv/kvm/vmid.c                              |   4 +-
 arch/s390/include/asm/kvm_host.h                   |   1 -
 arch/s390/kvm/interrupt.c                          |   2 +-
 arch/s390/kvm/kvm-s390.c                           |  84 ++--
 arch/s390/kvm/kvm-s390.h                           |   2 +-
 arch/s390/kvm/pci.c                                |   2 +-
 arch/s390/kvm/pci.h                                |   2 +-
 arch/x86/include/asm/hyperv-tlfs.h                 |   3 +
 arch/x86/include/asm/kvm-x86-ops.h                 |   1 +
 arch/x86/include/asm/kvm_host.h                    |  24 +-
 arch/x86/kernel/cpu/mshyperv.c                     |   2 +-
 arch/x86/kvm/Kconfig                               |   1 +
 arch/x86/kvm/cpuid.c                               |  12 +-
 arch/x86/kvm/debugfs.c                             |   2 +
 arch/x86/kvm/emulate.c                             |   1 +
 arch/x86/kvm/hyperv.c                              |  20 +
 arch/x86/kvm/hyperv.h                              |  27 ++
 arch/x86/kvm/i8254.c                               |   4 +-
 arch/x86/kvm/i8259.c                               |   4 +-
 arch/x86/kvm/ioapic.c                              |   1 +
 arch/x86/kvm/irq.c                                 |   1 +
 arch/x86/kvm/irq_comm.c                            |   7 +-
 arch/x86/kvm/kvm_onhyperv.c                        |   1 +
 arch/x86/kvm/lapic.c                               |   8 +-
 arch/x86/kvm/mmu.h                                 |   6 +-
 arch/x86/kvm/mmu/mmu.c                             | 277 ++++++++-----
 arch/x86/kvm/mmu/mmu_internal.h                    |   8 +-
 arch/x86/kvm/mmu/page_track.c                      |   1 +
 arch/x86/kvm/mmu/paging_tmpl.h                     |  12 +-
 arch/x86/kvm/mmu/spte.c                            |   4 +-
 arch/x86/kvm/mmu/spte.h                            |   4 +-
 arch/x86/kvm/mmu/tdp_iter.c                        |   1 +
 arch/x86/kvm/mmu/tdp_mmu.c                         |  14 +-
 arch/x86/kvm/mmu/tdp_mmu.h                         |  25 +-
 arch/x86/kvm/mtrr.c                                |   1 +
 arch/x86/kvm/pmu.c                                 |   1 +
 arch/x86/kvm/reverse_cpuid.h                       |   7 +
 arch/x86/kvm/smm.c                                 |   1 +
 arch/x86/kvm/svm/avic.c                            |   2 +-
 arch/x86/kvm/svm/nested.c                          |   2 +-
 arch/x86/kvm/svm/pmu.c                             |   2 +
 arch/x86/kvm/svm/sev.c                             |   1 +
 arch/x86/kvm/svm/svm.c                             |  89 ++--
 arch/x86/kvm/svm/svm_onhyperv.c                    |   1 +
 arch/x86/kvm/svm/svm_onhyperv.h                    |   4 +-
 arch/x86/kvm/vmx/capabilities.h                    |   4 +-
 arch/x86/kvm/vmx/hyperv.c                          |  87 +++-
 arch/x86/kvm/vmx/hyperv.h                          |  97 ++++-
 arch/x86/kvm/vmx/nested.c                          |   3 +-
 arch/x86/kvm/vmx/pmu_intel.c                       |   5 +-
 arch/x86/kvm/vmx/posted_intr.c                     |   2 +
 arch/x86/kvm/vmx/sgx.c                             |   5 +-
 arch/x86/kvm/vmx/vmcs12.c                          |   1 +
 arch/x86/kvm/vmx/vmx.c                             | 441 +++++++++++---------
 arch/x86/kvm/vmx/vmx_ops.h                         |   4 +-
 arch/x86/kvm/x86.c                                 | 252 ++++++-----
 arch/x86/kvm/xen.c                                 |   1 +
 drivers/irqchip/irq-apple-aic.c                    |  53 ++-
 include/kvm/arm_arch_timer.h                       |   6 +-
 include/kvm/arm_vgic.h                             |   4 +
 include/linux/cpuhotplug.h                         |   5 +-
 include/linux/kvm_host.h                           |  13 +-
 include/linux/kvm_types.h                          |   2 +-
 include/uapi/linux/elf.h                           |   1 +
 tools/testing/selftests/arm64/abi/hwcap.c          | 115 ++++++
 .../testing/selftests/arm64/abi/syscall-abi-asm.S  |  43 +-
 tools/testing/selftests/arm64/abi/syscall-abi.c    |  40 +-
 tools/testing/selftests/arm64/fp/.gitignore        |   2 +
 tools/testing/selftests/arm64/fp/Makefile          |   5 +
 tools/testing/selftests/arm64/fp/fp-stress.c       |  29 +-
 tools/testing/selftests/arm64/fp/sme-inst.h        |  20 +
 tools/testing/selftests/arm64/fp/zt-ptrace.c       | 365 ++++++++++++++++
 tools/testing/selftests/arm64/fp/zt-test.S         | 316 ++++++++++++++
 tools/testing/selftests/arm64/signal/.gitignore    |   1 +
 .../testing/selftests/arm64/signal/test_signals.h  |   2 +
 .../selftests/arm64/signal/test_signals_utils.c    |   3 +
 .../selftests/arm64/signal/testcases/testcases.c   |  36 ++
 .../selftests/arm64/signal/testcases/testcases.h   |   1 +
 .../selftests/arm64/signal/testcases/zt_no_regs.c  |  51 +++
 .../selftests/arm64/signal/testcases/zt_regs.c     |  85 ++++
 .../selftests/kvm/aarch64/page_fault_test.c        |   2 -
 tools/testing/selftests/kvm/config                 |   1 +
 .../testing/selftests/kvm/include/x86_64/hyperv.h  | 144 ++++---
 .../selftests/kvm/include/x86_64/processor.h       |   1 +
 .../testing/selftests/kvm/kvm_binary_stats_test.c  |  11 +-
 .../kvm/x86_64/exit_on_emulation_failure_test.c    |   3 -
 .../testing/selftests/kvm/x86_64/hyperv_features.c | 330 +++++++++------
 tools/testing/selftests/kvm/x86_64/tsc_msrs_test.c |  16 +-
 virt/kvm/Kconfig                                   |   3 +
 virt/kvm/kvm_main.c                                | 297 ++++++-------
 171 files changed, 4691 insertions(+), 1593 deletions(-)
 create mode 100644 arch/arm64/include/asm/kvm_nested.h
 create mode 100644 arch/arm64/kvm/emulate-nested.c
 create mode 100644 arch/arm64/kvm/nested.c
 delete mode 100644 arch/mips/kvm/callback.c
 create mode 100644 tools/testing/selftests/arm64/fp/zt-ptrace.c
 create mode 100644 tools/testing/selftests/arm64/fp/zt-test.S
 create mode 100644 tools/testing/selftests/arm64/signal/testcases/zt_no_regs.c
 create mode 100644 tools/testing/selftests/arm64/signal/testcases/zt_regs.c

Comments

Paolo Bonzini Feb. 20, 2023, 11:54 a.m. UTC | #1
On 2/18/23 15:22, Marc Zyngier wrote:
> Paolo,
> 
> Here's the bulk of the KVM/arm64 updates for 6.3, see the tag for the
> laundry list. A couple of things to note:
> 
> - We drag two branches to avoid ugly conflicts:
> 
>    * the common KVM 'kvm-hw-enable-refactor' that you already have in
>      your tree
> 
>    * the arm64 'for-next/sme2' branch
> 
> - The whole thing has been pulled together by Oliver who has, I think,
>    done a tremendous job

Pulled, thanks Marc and Oliver!

Paolo