All of lore.kernel.org
 help / color / mirror / Atom feed
* [GIT PULL] KVM/arm64 updates for 5.19
@ 2022-05-19  9:27 ` Marc Zyngier
  0 siblings, 0 replies; 6+ messages in thread
From: Marc Zyngier @ 2022-05-19  9:27 UTC (permalink / raw)
  To: Paolo Bonzini
  Cc: Alexandru Elisei, Andrew Jones, Ard Biesheuvel, Catalin Marinas,
	David Brazdil, Eric Auger, Fuad Tabba, Gavin Shan, James Morse,
	Joey Gouly, Kalesh Singh, Marek Szyprowski, Mark Brown,
	Oliver Upton, Raghavendra Rao Ananta, Randy Dunlap,
	Reiji Watanabe, Ricardo Koller, Stephen Rothwell,
	Suzuki K Poulose, Szabolcs Nagy, Wan Jiabing, kvm, kvmarm,
	linux-arm-kernel, kernel-team

Hi Paolo,

Here's the bulk of the KVM/arm64 updates for 5.19. Major features are
guard pages for the EL2 stacks, save/restore of the guest-visible
hypercall configuration and PSCI suspend support. Further details in
the tag description.

Note that this PR contains a shared branch with the arm64 tree
containing the SME patches to resolve conflicts with the WFxT support
branch.

Please pull,

	M.

The following changes since commit 672c0c5173427e6b3e2a9bbb7be51ceeec78093a:

  Linux 5.18-rc5 (2022-05-01 13:57:58 -0700)

are available in the Git repository at:

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

for you to fetch changes up to 5c0ad551e9aa6188f2bda0977c1cb6768a2b74ef:

  Merge branch kvm-arm64/its-save-restore-fixes-5.19 into kvmarm-master/next (2022-05-16 17:48:36 +0100)

----------------------------------------------------------------
KVM/arm64 updates for 5.19

- Add support for the ARMv8.6 WFxT extension

- Guard pages for the EL2 stacks

- Trap and emulate AArch32 ID registers to hide unsupported features

- Ability to select and save/restore the set of hypercalls exposed
  to the guest

- Support for PSCI-initiated suspend in collaboration with userspace

- GICv3 register-based LPI invalidation support

- Move host PMU event merging into the vcpu data structure

- GICv3 ITS save/restore fixes

- The usual set of small-scale cleanups and fixes

----------------------------------------------------------------
Alexandru Elisei (3):
      KVM: arm64: Hide AArch32 PMU registers when not available
      KVM: arm64: Don't BUG_ON() if emulated register table is unsorted
      KVM: arm64: Print emulated register table name when it is unsorted

Ard Biesheuvel (1):
      KVM: arm64: Avoid unnecessary absolute addressing via literals

Fuad Tabba (4):
      KVM: arm64: Wrapper for getting pmu_events
      KVM: arm64: Repack struct kvm_pmu to reduce size
      KVM: arm64: Pass pmu events to hyp via vcpu
      KVM: arm64: Reenable pmu in Protected Mode

Kalesh Singh (6):
      KVM: arm64: Introduce hyp_alloc_private_va_range()
      KVM: arm64: Introduce pkvm_alloc_private_va_range()
      KVM: arm64: Add guard pages for KVM nVHE hypervisor stack
      KVM: arm64: Add guard pages for pKVM (protected nVHE) hypervisor stack
      KVM: arm64: Detect and handle hypervisor stack overflows
      KVM: arm64: Symbolize the nVHE HYP addresses

Marc Zyngier (30):
      arm64: Expand ESR_ELx_WFx_ISS_TI to match its ARMv8.7 definition
      arm64: Add RV and RN fields for ESR_ELx_WFx_ISS
      arm64: Add HWCAP advertising FEAT_WFXT
      arm64: Add wfet()/wfit() helpers
      arm64: Use WFxT for __delay() when possible
      KVM: arm64: Simplify kvm_cpu_has_pending_timer()
      KVM: arm64: Introduce kvm_counter_compute_delta() helper
      KVM: arm64: Handle blocking WFIT instruction
      KVM: arm64: Offer early resume for non-blocking WFxT instructions
      KVM: arm64: Expose the WFXT feature to guests
      KVM: arm64: Fix new instances of 32bit ESRs
      Merge remote-tracking branch 'arm64/for-next/sme' into kvmarm-master/next
      Merge branch kvm-arm64/wfxt into kvmarm-master/next
      Merge branch kvm-arm64/hyp-stack-guard into kvmarm-master/next
      Merge branch kvm-arm64/aarch32-idreg-trap into kvmarm-master/next
      Documentation: Fix index.rst after psci.rst renaming
      irqchip/gic-v3: Exposes bit values for GICR_CTLR.{IR, CES}
      KVM: arm64: vgic-v3: Expose GICR_CTLR.RWP when disabling LPIs
      KVM: arm64: vgic-v3: Implement MMIO-based LPI invalidation
      KVM: arm64: vgic-v3: Advertise GICR_CTLR.{IR, CES} as a new GICD_IIDR revision
      KVM: arm64: vgic-v3: List M1 Pro/Max as requiring the SEIS workaround
      KVM: arm64: Hide KVM_REG_ARM_*_BMAP_BIT_COUNT from userspace
      KVM: arm64: pmu: Restore compilation when HW_PERF_EVENTS isn't selected
      KVM: arm64: Fix hypercall bitmap writeback when vcpus have already run
      Merge branch kvm-arm64/hcall-selection into kvmarm-master/next
      Merge branch kvm-arm64/psci-suspend into kvmarm-master/next
      Merge branch kvm-arm64/vgic-invlpir into kvmarm-master/next
      Merge branch kvm-arm64/per-vcpu-host-pmu-data into kvmarm-master/next
      Merge branch kvm-arm64/misc-5.19 into kvmarm-master/next
      Merge branch kvm-arm64/its-save-restore-fixes-5.19 into kvmarm-master/next

Mark Brown (25):
      arm64/sme: Provide ABI documentation for SME
      arm64/sme: System register and exception syndrome definitions
      arm64/sme: Manually encode SME instructions
      arm64/sme: Early CPU setup for SME
      arm64/sme: Basic enumeration support
      arm64/sme: Identify supported SME vector lengths at boot
      arm64/sme: Implement sysctl to set the default vector length
      arm64/sme: Implement vector length configuration prctl()s
      arm64/sme: Implement support for TPIDR2
      arm64/sme: Implement SVCR context switching
      arm64/sme: Implement streaming SVE context switching
      arm64/sme: Implement ZA context switching
      arm64/sme: Implement traps and syscall handling for SME
      arm64/sme: Disable ZA and streaming mode when handling signals
      arm64/sme: Implement streaming SVE signal handling
      arm64/sme: Implement ZA signal handling
      arm64/sme: Implement ptrace support for streaming mode SVE registers
      arm64/sme: Add ptrace support for ZA
      arm64/sme: Disable streaming mode and ZA when flushing CPU state
      arm64/sme: Save and restore streaming mode over EFI runtime calls
      KVM: arm64: Hide SME system registers from guests
      KVM: arm64: Trap SME usage in guest
      KVM: arm64: Handle SME host state when running guests
      arm64/sme: Provide Kconfig for SME
      arm64/sme: Add ID_AA64SMFR0_EL1 to __read_sysreg_by_encoding()

Oliver Upton (21):
      KVM: arm64: Return a bool from emulate_cp()
      KVM: arm64: Don't write to Rt unless sys_reg emulation succeeds
      KVM: arm64: Wire up CP15 feature registers to their AArch64 equivalents
      KVM: arm64: Plumb cp10 ID traps through the AArch64 sysreg handler
      KVM: arm64: Start trapping ID registers for 32 bit guests
      selftests: KVM: Rename psci_cpu_on_test to psci_test
      selftests: KVM: Create helper for making SMCCC calls
      KVM: arm64: Don't depend on fallthrough to hide SYSTEM_RESET2
      KVM: arm64: Dedupe vCPU power off helpers
      KVM: arm64: Track vCPU power state using MP state values
      KVM: arm64: Rename the KVM_REQ_SLEEP handler
      KVM: arm64: Return a value from check_vcpu_requests()
      KVM: arm64: Add support for userspace to suspend a vCPU
      KVM: arm64: Implement PSCI SYSTEM_SUSPEND
      selftests: KVM: Rename psci_cpu_on_test to psci_test
      selftests: KVM: Create helper for making SMCCC calls
      selftests: KVM: Use KVM_SET_MP_STATE to power off vCPU in psci_test
      selftests: KVM: Refactor psci_test to make it amenable to new tests
      selftests: KVM: Test SYSTEM_SUSPEND PSCI call
      KVM: arm64: pkvm: Drop unnecessary FP/SIMD trap handler
      KVM: arm64: pkvm: Don't mask already zeroed FEAT_SVE

Raghavendra Rao Ananta (9):
      KVM: arm64: Factor out firmware register handling from psci.c
      KVM: arm64: Setup a framework for hypercall bitmap firmware registers
      KVM: arm64: Add standard hypervisor firmware register
      KVM: arm64: Add vendor hypervisor firmware register
      Docs: KVM: Rename psci.rst to hypercalls.rst
      Docs: KVM: Add doc for the bitmap firmware registers
      tools: Import ARM SMCCC definitions
      selftests: KVM: aarch64: Introduce hypercall ABI test
      selftests: KVM: aarch64: Add the bitmap firmware registers to get-reg-list

Randy Dunlap (1):
      KVM: arm64: nvhe: Eliminate kernel-doc warnings

Ricardo Koller (4):
      KVM: arm64: vgic: Check that new ITEs could be saved in guest memory
      KVM: arm64: vgic: Add more checks when restoring ITS tables
      KVM: arm64: vgic: Do not ignore vgic_its_restore_cte failures
      KVM: arm64: vgic: Undo work in failed ITS restores

Stephen Rothwell (1):
      Documentation: KVM: Fix title level for PSCI_SUSPEND

Wan Jiabing (1):
      arm64/sme: Fix NULL check after kzalloc

 Documentation/arm64/cpu-feature-registers.rst      |   2 +
 Documentation/arm64/elf_hwcaps.rst                 |  37 ++
 Documentation/arm64/index.rst                      |   1 +
 Documentation/arm64/sme.rst                        | 428 +++++++++++++++
 Documentation/arm64/sve.rst                        |  70 ++-
 Documentation/virt/kvm/api.rst                     |  94 +++-
 Documentation/virt/kvm/arm/hypercalls.rst          | 138 +++++
 Documentation/virt/kvm/arm/index.rst               |   2 +-
 Documentation/virt/kvm/arm/psci.rst                |  77 ---
 arch/arm64/Kconfig                                 |  11 +
 arch/arm64/include/asm/barrier.h                   |   4 +
 arch/arm64/include/asm/cpu.h                       |   4 +
 arch/arm64/include/asm/cpufeature.h                |  24 +
 arch/arm64/include/asm/cputype.h                   |   8 +
 arch/arm64/include/asm/el2_setup.h                 |  64 ++-
 arch/arm64/include/asm/esr.h                       |  21 +-
 arch/arm64/include/asm/exception.h                 |   1 +
 arch/arm64/include/asm/fpsimd.h                    | 123 ++++-
 arch/arm64/include/asm/fpsimdmacros.h              |  87 +++
 arch/arm64/include/asm/hwcap.h                     |   9 +
 arch/arm64/include/asm/kvm_arm.h                   |   4 +-
 arch/arm64/include/asm/kvm_asm.h                   |   1 +
 arch/arm64/include/asm/kvm_emulate.h               |   7 -
 arch/arm64/include/asm/kvm_host.h                  |  45 +-
 arch/arm64/include/asm/kvm_mmu.h                   |   3 +
 arch/arm64/include/asm/processor.h                 |  26 +-
 arch/arm64/include/asm/sysreg.h                    |  67 +++
 arch/arm64/include/asm/thread_info.h               |   2 +
 arch/arm64/include/uapi/asm/hwcap.h                |   9 +
 arch/arm64/include/uapi/asm/kvm.h                  |  34 ++
 arch/arm64/include/uapi/asm/ptrace.h               |  69 ++-
 arch/arm64/include/uapi/asm/sigcontext.h           |  55 +-
 arch/arm64/kernel/cpufeature.c                     | 120 +++++
 arch/arm64/kernel/cpuinfo.c                        |  14 +
 arch/arm64/kernel/entry-common.c                   |  11 +
 arch/arm64/kernel/entry-fpsimd.S                   |  36 ++
 arch/arm64/kernel/fpsimd.c                         | 585 +++++++++++++++++++--
 arch/arm64/kernel/process.c                        |  44 +-
 arch/arm64/kernel/ptrace.c                         | 358 +++++++++++--
 arch/arm64/kernel/signal.c                         | 188 ++++++-
 arch/arm64/kernel/syscall.c                        |  29 +-
 arch/arm64/kernel/traps.c                          |   1 +
 arch/arm64/kvm/Makefile                            |   4 +-
 arch/arm64/kvm/arch_timer.c                        |  47 +-
 arch/arm64/kvm/arm.c                               | 158 +++++-
 arch/arm64/kvm/fpsimd.c                            |  43 +-
 arch/arm64/kvm/guest.c                             |  10 +-
 arch/arm64/kvm/handle_exit.c                       |  49 +-
 arch/arm64/kvm/hyp/include/nvhe/mm.h               |   6 +-
 arch/arm64/kvm/hyp/nvhe/host.S                     |  32 +-
 arch/arm64/kvm/hyp/nvhe/hyp-main.c                 |  18 +-
 arch/arm64/kvm/hyp/nvhe/mm.c                       |  78 ++-
 arch/arm64/kvm/hyp/nvhe/setup.c                    |  31 +-
 arch/arm64/kvm/hyp/nvhe/switch.c                   |  87 +--
 arch/arm64/kvm/hyp/nvhe/sys_regs.c                 |   3 -
 arch/arm64/kvm/hyp/vhe/switch.c                    |  11 +-
 arch/arm64/kvm/hypercalls.c                        | 327 +++++++++++-
 arch/arm64/kvm/mmu.c                               |  68 ++-
 arch/arm64/kvm/pmu-emul.c                          |   3 +-
 arch/arm64/kvm/pmu.c                               |  40 +-
 arch/arm64/kvm/psci.c                              | 248 ++-------
 arch/arm64/kvm/sys_regs.c                          | 305 ++++++++---
 arch/arm64/kvm/sys_regs.h                          |   9 +-
 arch/arm64/kvm/vgic/vgic-init.c                    |   7 +-
 arch/arm64/kvm/vgic/vgic-its.c                     | 160 ++++--
 arch/arm64/kvm/vgic/vgic-mmio-v2.c                 |  18 +-
 arch/arm64/kvm/vgic/vgic-mmio-v3.c                 | 125 ++++-
 arch/arm64/kvm/vgic/vgic-v3.c                      |   4 +
 arch/arm64/kvm/vgic/vgic.h                         |  10 +
 arch/arm64/lib/delay.c                             |  12 +-
 arch/arm64/tools/cpucaps                           |   3 +
 include/kvm/arm_arch_timer.h                       |   2 -
 include/kvm/arm_hypercalls.h                       |   8 +
 include/kvm/arm_pmu.h                              |  34 +-
 include/kvm/arm_psci.h                             |   7 -
 include/kvm/arm_vgic.h                             |   8 +-
 include/linux/irqchip/arm-gic-v3.h                 |   2 +
 include/uapi/linux/elf.h                           |   2 +
 include/uapi/linux/kvm.h                           |   4 +
 include/uapi/linux/prctl.h                         |   9 +
 kernel/sys.c                                       |  12 +
 scripts/kallsyms.c                                 |   3 +-
 tools/include/linux/arm-smccc.h                    | 193 +++++++
 tools/testing/selftests/kvm/.gitignore             |   3 +-
 tools/testing/selftests/kvm/Makefile               |   3 +-
 tools/testing/selftests/kvm/aarch64/get-reg-list.c |   8 +
 tools/testing/selftests/kvm/aarch64/hypercalls.c   | 336 ++++++++++++
 .../selftests/kvm/aarch64/psci_cpu_on_test.c       | 121 -----
 tools/testing/selftests/kvm/aarch64/psci_test.c    | 213 ++++++++
 .../selftests/kvm/include/aarch64/processor.h      |  22 +
 .../testing/selftests/kvm/lib/aarch64/processor.c  |  25 +
 tools/testing/selftests/kvm/steal_time.c           |  13 +-
 92 files changed, 4949 insertions(+), 908 deletions(-)
 create mode 100644 Documentation/arm64/sme.rst
 create mode 100644 Documentation/virt/kvm/arm/hypercalls.rst
 delete mode 100644 Documentation/virt/kvm/arm/psci.rst
 create mode 100644 tools/include/linux/arm-smccc.h
 create mode 100644 tools/testing/selftests/kvm/aarch64/hypercalls.c
 delete mode 100644 tools/testing/selftests/kvm/aarch64/psci_cpu_on_test.c
 create mode 100644 tools/testing/selftests/kvm/aarch64/psci_test.c

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [GIT PULL] KVM/arm64 updates for 5.19
@ 2022-05-19  9:27 ` Marc Zyngier
  0 siblings, 0 replies; 6+ messages in thread
From: Marc Zyngier @ 2022-05-19  9:27 UTC (permalink / raw)
  To: Paolo Bonzini
  Cc: kvm, Szabolcs Nagy, Catalin Marinas, Joey Gouly,
	Marek Szyprowski, Stephen Rothwell, Wan Jiabing, kvmarm,
	linux-arm-kernel, kernel-team, Mark Brown, Randy Dunlap

Hi Paolo,

Here's the bulk of the KVM/arm64 updates for 5.19. Major features are
guard pages for the EL2 stacks, save/restore of the guest-visible
hypercall configuration and PSCI suspend support. Further details in
the tag description.

Note that this PR contains a shared branch with the arm64 tree
containing the SME patches to resolve conflicts with the WFxT support
branch.

Please pull,

	M.

The following changes since commit 672c0c5173427e6b3e2a9bbb7be51ceeec78093a:

  Linux 5.18-rc5 (2022-05-01 13:57:58 -0700)

are available in the Git repository at:

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

for you to fetch changes up to 5c0ad551e9aa6188f2bda0977c1cb6768a2b74ef:

  Merge branch kvm-arm64/its-save-restore-fixes-5.19 into kvmarm-master/next (2022-05-16 17:48:36 +0100)

----------------------------------------------------------------
KVM/arm64 updates for 5.19

- Add support for the ARMv8.6 WFxT extension

- Guard pages for the EL2 stacks

- Trap and emulate AArch32 ID registers to hide unsupported features

- Ability to select and save/restore the set of hypercalls exposed
  to the guest

- Support for PSCI-initiated suspend in collaboration with userspace

- GICv3 register-based LPI invalidation support

- Move host PMU event merging into the vcpu data structure

- GICv3 ITS save/restore fixes

- The usual set of small-scale cleanups and fixes

----------------------------------------------------------------
Alexandru Elisei (3):
      KVM: arm64: Hide AArch32 PMU registers when not available
      KVM: arm64: Don't BUG_ON() if emulated register table is unsorted
      KVM: arm64: Print emulated register table name when it is unsorted

Ard Biesheuvel (1):
      KVM: arm64: Avoid unnecessary absolute addressing via literals

Fuad Tabba (4):
      KVM: arm64: Wrapper for getting pmu_events
      KVM: arm64: Repack struct kvm_pmu to reduce size
      KVM: arm64: Pass pmu events to hyp via vcpu
      KVM: arm64: Reenable pmu in Protected Mode

Kalesh Singh (6):
      KVM: arm64: Introduce hyp_alloc_private_va_range()
      KVM: arm64: Introduce pkvm_alloc_private_va_range()
      KVM: arm64: Add guard pages for KVM nVHE hypervisor stack
      KVM: arm64: Add guard pages for pKVM (protected nVHE) hypervisor stack
      KVM: arm64: Detect and handle hypervisor stack overflows
      KVM: arm64: Symbolize the nVHE HYP addresses

Marc Zyngier (30):
      arm64: Expand ESR_ELx_WFx_ISS_TI to match its ARMv8.7 definition
      arm64: Add RV and RN fields for ESR_ELx_WFx_ISS
      arm64: Add HWCAP advertising FEAT_WFXT
      arm64: Add wfet()/wfit() helpers
      arm64: Use WFxT for __delay() when possible
      KVM: arm64: Simplify kvm_cpu_has_pending_timer()
      KVM: arm64: Introduce kvm_counter_compute_delta() helper
      KVM: arm64: Handle blocking WFIT instruction
      KVM: arm64: Offer early resume for non-blocking WFxT instructions
      KVM: arm64: Expose the WFXT feature to guests
      KVM: arm64: Fix new instances of 32bit ESRs
      Merge remote-tracking branch 'arm64/for-next/sme' into kvmarm-master/next
      Merge branch kvm-arm64/wfxt into kvmarm-master/next
      Merge branch kvm-arm64/hyp-stack-guard into kvmarm-master/next
      Merge branch kvm-arm64/aarch32-idreg-trap into kvmarm-master/next
      Documentation: Fix index.rst after psci.rst renaming
      irqchip/gic-v3: Exposes bit values for GICR_CTLR.{IR, CES}
      KVM: arm64: vgic-v3: Expose GICR_CTLR.RWP when disabling LPIs
      KVM: arm64: vgic-v3: Implement MMIO-based LPI invalidation
      KVM: arm64: vgic-v3: Advertise GICR_CTLR.{IR, CES} as a new GICD_IIDR revision
      KVM: arm64: vgic-v3: List M1 Pro/Max as requiring the SEIS workaround
      KVM: arm64: Hide KVM_REG_ARM_*_BMAP_BIT_COUNT from userspace
      KVM: arm64: pmu: Restore compilation when HW_PERF_EVENTS isn't selected
      KVM: arm64: Fix hypercall bitmap writeback when vcpus have already run
      Merge branch kvm-arm64/hcall-selection into kvmarm-master/next
      Merge branch kvm-arm64/psci-suspend into kvmarm-master/next
      Merge branch kvm-arm64/vgic-invlpir into kvmarm-master/next
      Merge branch kvm-arm64/per-vcpu-host-pmu-data into kvmarm-master/next
      Merge branch kvm-arm64/misc-5.19 into kvmarm-master/next
      Merge branch kvm-arm64/its-save-restore-fixes-5.19 into kvmarm-master/next

Mark Brown (25):
      arm64/sme: Provide ABI documentation for SME
      arm64/sme: System register and exception syndrome definitions
      arm64/sme: Manually encode SME instructions
      arm64/sme: Early CPU setup for SME
      arm64/sme: Basic enumeration support
      arm64/sme: Identify supported SME vector lengths at boot
      arm64/sme: Implement sysctl to set the default vector length
      arm64/sme: Implement vector length configuration prctl()s
      arm64/sme: Implement support for TPIDR2
      arm64/sme: Implement SVCR context switching
      arm64/sme: Implement streaming SVE context switching
      arm64/sme: Implement ZA context switching
      arm64/sme: Implement traps and syscall handling for SME
      arm64/sme: Disable ZA and streaming mode when handling signals
      arm64/sme: Implement streaming SVE signal handling
      arm64/sme: Implement ZA signal handling
      arm64/sme: Implement ptrace support for streaming mode SVE registers
      arm64/sme: Add ptrace support for ZA
      arm64/sme: Disable streaming mode and ZA when flushing CPU state
      arm64/sme: Save and restore streaming mode over EFI runtime calls
      KVM: arm64: Hide SME system registers from guests
      KVM: arm64: Trap SME usage in guest
      KVM: arm64: Handle SME host state when running guests
      arm64/sme: Provide Kconfig for SME
      arm64/sme: Add ID_AA64SMFR0_EL1 to __read_sysreg_by_encoding()

Oliver Upton (21):
      KVM: arm64: Return a bool from emulate_cp()
      KVM: arm64: Don't write to Rt unless sys_reg emulation succeeds
      KVM: arm64: Wire up CP15 feature registers to their AArch64 equivalents
      KVM: arm64: Plumb cp10 ID traps through the AArch64 sysreg handler
      KVM: arm64: Start trapping ID registers for 32 bit guests
      selftests: KVM: Rename psci_cpu_on_test to psci_test
      selftests: KVM: Create helper for making SMCCC calls
      KVM: arm64: Don't depend on fallthrough to hide SYSTEM_RESET2
      KVM: arm64: Dedupe vCPU power off helpers
      KVM: arm64: Track vCPU power state using MP state values
      KVM: arm64: Rename the KVM_REQ_SLEEP handler
      KVM: arm64: Return a value from check_vcpu_requests()
      KVM: arm64: Add support for userspace to suspend a vCPU
      KVM: arm64: Implement PSCI SYSTEM_SUSPEND
      selftests: KVM: Rename psci_cpu_on_test to psci_test
      selftests: KVM: Create helper for making SMCCC calls
      selftests: KVM: Use KVM_SET_MP_STATE to power off vCPU in psci_test
      selftests: KVM: Refactor psci_test to make it amenable to new tests
      selftests: KVM: Test SYSTEM_SUSPEND PSCI call
      KVM: arm64: pkvm: Drop unnecessary FP/SIMD trap handler
      KVM: arm64: pkvm: Don't mask already zeroed FEAT_SVE

Raghavendra Rao Ananta (9):
      KVM: arm64: Factor out firmware register handling from psci.c
      KVM: arm64: Setup a framework for hypercall bitmap firmware registers
      KVM: arm64: Add standard hypervisor firmware register
      KVM: arm64: Add vendor hypervisor firmware register
      Docs: KVM: Rename psci.rst to hypercalls.rst
      Docs: KVM: Add doc for the bitmap firmware registers
      tools: Import ARM SMCCC definitions
      selftests: KVM: aarch64: Introduce hypercall ABI test
      selftests: KVM: aarch64: Add the bitmap firmware registers to get-reg-list

Randy Dunlap (1):
      KVM: arm64: nvhe: Eliminate kernel-doc warnings

Ricardo Koller (4):
      KVM: arm64: vgic: Check that new ITEs could be saved in guest memory
      KVM: arm64: vgic: Add more checks when restoring ITS tables
      KVM: arm64: vgic: Do not ignore vgic_its_restore_cte failures
      KVM: arm64: vgic: Undo work in failed ITS restores

Stephen Rothwell (1):
      Documentation: KVM: Fix title level for PSCI_SUSPEND

Wan Jiabing (1):
      arm64/sme: Fix NULL check after kzalloc

 Documentation/arm64/cpu-feature-registers.rst      |   2 +
 Documentation/arm64/elf_hwcaps.rst                 |  37 ++
 Documentation/arm64/index.rst                      |   1 +
 Documentation/arm64/sme.rst                        | 428 +++++++++++++++
 Documentation/arm64/sve.rst                        |  70 ++-
 Documentation/virt/kvm/api.rst                     |  94 +++-
 Documentation/virt/kvm/arm/hypercalls.rst          | 138 +++++
 Documentation/virt/kvm/arm/index.rst               |   2 +-
 Documentation/virt/kvm/arm/psci.rst                |  77 ---
 arch/arm64/Kconfig                                 |  11 +
 arch/arm64/include/asm/barrier.h                   |   4 +
 arch/arm64/include/asm/cpu.h                       |   4 +
 arch/arm64/include/asm/cpufeature.h                |  24 +
 arch/arm64/include/asm/cputype.h                   |   8 +
 arch/arm64/include/asm/el2_setup.h                 |  64 ++-
 arch/arm64/include/asm/esr.h                       |  21 +-
 arch/arm64/include/asm/exception.h                 |   1 +
 arch/arm64/include/asm/fpsimd.h                    | 123 ++++-
 arch/arm64/include/asm/fpsimdmacros.h              |  87 +++
 arch/arm64/include/asm/hwcap.h                     |   9 +
 arch/arm64/include/asm/kvm_arm.h                   |   4 +-
 arch/arm64/include/asm/kvm_asm.h                   |   1 +
 arch/arm64/include/asm/kvm_emulate.h               |   7 -
 arch/arm64/include/asm/kvm_host.h                  |  45 +-
 arch/arm64/include/asm/kvm_mmu.h                   |   3 +
 arch/arm64/include/asm/processor.h                 |  26 +-
 arch/arm64/include/asm/sysreg.h                    |  67 +++
 arch/arm64/include/asm/thread_info.h               |   2 +
 arch/arm64/include/uapi/asm/hwcap.h                |   9 +
 arch/arm64/include/uapi/asm/kvm.h                  |  34 ++
 arch/arm64/include/uapi/asm/ptrace.h               |  69 ++-
 arch/arm64/include/uapi/asm/sigcontext.h           |  55 +-
 arch/arm64/kernel/cpufeature.c                     | 120 +++++
 arch/arm64/kernel/cpuinfo.c                        |  14 +
 arch/arm64/kernel/entry-common.c                   |  11 +
 arch/arm64/kernel/entry-fpsimd.S                   |  36 ++
 arch/arm64/kernel/fpsimd.c                         | 585 +++++++++++++++++++--
 arch/arm64/kernel/process.c                        |  44 +-
 arch/arm64/kernel/ptrace.c                         | 358 +++++++++++--
 arch/arm64/kernel/signal.c                         | 188 ++++++-
 arch/arm64/kernel/syscall.c                        |  29 +-
 arch/arm64/kernel/traps.c                          |   1 +
 arch/arm64/kvm/Makefile                            |   4 +-
 arch/arm64/kvm/arch_timer.c                        |  47 +-
 arch/arm64/kvm/arm.c                               | 158 +++++-
 arch/arm64/kvm/fpsimd.c                            |  43 +-
 arch/arm64/kvm/guest.c                             |  10 +-
 arch/arm64/kvm/handle_exit.c                       |  49 +-
 arch/arm64/kvm/hyp/include/nvhe/mm.h               |   6 +-
 arch/arm64/kvm/hyp/nvhe/host.S                     |  32 +-
 arch/arm64/kvm/hyp/nvhe/hyp-main.c                 |  18 +-
 arch/arm64/kvm/hyp/nvhe/mm.c                       |  78 ++-
 arch/arm64/kvm/hyp/nvhe/setup.c                    |  31 +-
 arch/arm64/kvm/hyp/nvhe/switch.c                   |  87 +--
 arch/arm64/kvm/hyp/nvhe/sys_regs.c                 |   3 -
 arch/arm64/kvm/hyp/vhe/switch.c                    |  11 +-
 arch/arm64/kvm/hypercalls.c                        | 327 +++++++++++-
 arch/arm64/kvm/mmu.c                               |  68 ++-
 arch/arm64/kvm/pmu-emul.c                          |   3 +-
 arch/arm64/kvm/pmu.c                               |  40 +-
 arch/arm64/kvm/psci.c                              | 248 ++-------
 arch/arm64/kvm/sys_regs.c                          | 305 ++++++++---
 arch/arm64/kvm/sys_regs.h                          |   9 +-
 arch/arm64/kvm/vgic/vgic-init.c                    |   7 +-
 arch/arm64/kvm/vgic/vgic-its.c                     | 160 ++++--
 arch/arm64/kvm/vgic/vgic-mmio-v2.c                 |  18 +-
 arch/arm64/kvm/vgic/vgic-mmio-v3.c                 | 125 ++++-
 arch/arm64/kvm/vgic/vgic-v3.c                      |   4 +
 arch/arm64/kvm/vgic/vgic.h                         |  10 +
 arch/arm64/lib/delay.c                             |  12 +-
 arch/arm64/tools/cpucaps                           |   3 +
 include/kvm/arm_arch_timer.h                       |   2 -
 include/kvm/arm_hypercalls.h                       |   8 +
 include/kvm/arm_pmu.h                              |  34 +-
 include/kvm/arm_psci.h                             |   7 -
 include/kvm/arm_vgic.h                             |   8 +-
 include/linux/irqchip/arm-gic-v3.h                 |   2 +
 include/uapi/linux/elf.h                           |   2 +
 include/uapi/linux/kvm.h                           |   4 +
 include/uapi/linux/prctl.h                         |   9 +
 kernel/sys.c                                       |  12 +
 scripts/kallsyms.c                                 |   3 +-
 tools/include/linux/arm-smccc.h                    | 193 +++++++
 tools/testing/selftests/kvm/.gitignore             |   3 +-
 tools/testing/selftests/kvm/Makefile               |   3 +-
 tools/testing/selftests/kvm/aarch64/get-reg-list.c |   8 +
 tools/testing/selftests/kvm/aarch64/hypercalls.c   | 336 ++++++++++++
 .../selftests/kvm/aarch64/psci_cpu_on_test.c       | 121 -----
 tools/testing/selftests/kvm/aarch64/psci_test.c    | 213 ++++++++
 .../selftests/kvm/include/aarch64/processor.h      |  22 +
 .../testing/selftests/kvm/lib/aarch64/processor.c  |  25 +
 tools/testing/selftests/kvm/steal_time.c           |  13 +-
 92 files changed, 4949 insertions(+), 908 deletions(-)
 create mode 100644 Documentation/arm64/sme.rst
 create mode 100644 Documentation/virt/kvm/arm/hypercalls.rst
 delete mode 100644 Documentation/virt/kvm/arm/psci.rst
 create mode 100644 tools/include/linux/arm-smccc.h
 create mode 100644 tools/testing/selftests/kvm/aarch64/hypercalls.c
 delete mode 100644 tools/testing/selftests/kvm/aarch64/psci_cpu_on_test.c
 create mode 100644 tools/testing/selftests/kvm/aarch64/psci_test.c
_______________________________________________
kvmarm mailing list
kvmarm@lists.cs.columbia.edu
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [GIT PULL] KVM/arm64 updates for 5.19
@ 2022-05-19  9:27 ` Marc Zyngier
  0 siblings, 0 replies; 6+ messages in thread
From: Marc Zyngier @ 2022-05-19  9:27 UTC (permalink / raw)
  To: Paolo Bonzini
  Cc: Alexandru Elisei, Andrew Jones, Ard Biesheuvel, Catalin Marinas,
	David Brazdil, Eric Auger, Fuad Tabba, Gavin Shan, James Morse,
	Joey Gouly, Kalesh Singh, Marek Szyprowski, Mark Brown,
	Oliver Upton, Raghavendra Rao Ananta, Randy Dunlap,
	Reiji Watanabe, Ricardo Koller, Stephen Rothwell,
	Suzuki K Poulose, Szabolcs Nagy, Wan Jiabing, kvm, kvmarm,
	linux-arm-kernel, kernel-team

Hi Paolo,

Here's the bulk of the KVM/arm64 updates for 5.19. Major features are
guard pages for the EL2 stacks, save/restore of the guest-visible
hypercall configuration and PSCI suspend support. Further details in
the tag description.

Note that this PR contains a shared branch with the arm64 tree
containing the SME patches to resolve conflicts with the WFxT support
branch.

Please pull,

	M.

The following changes since commit 672c0c5173427e6b3e2a9bbb7be51ceeec78093a:

  Linux 5.18-rc5 (2022-05-01 13:57:58 -0700)

are available in the Git repository at:

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

for you to fetch changes up to 5c0ad551e9aa6188f2bda0977c1cb6768a2b74ef:

  Merge branch kvm-arm64/its-save-restore-fixes-5.19 into kvmarm-master/next (2022-05-16 17:48:36 +0100)

----------------------------------------------------------------
KVM/arm64 updates for 5.19

- Add support for the ARMv8.6 WFxT extension

- Guard pages for the EL2 stacks

- Trap and emulate AArch32 ID registers to hide unsupported features

- Ability to select and save/restore the set of hypercalls exposed
  to the guest

- Support for PSCI-initiated suspend in collaboration with userspace

- GICv3 register-based LPI invalidation support

- Move host PMU event merging into the vcpu data structure

- GICv3 ITS save/restore fixes

- The usual set of small-scale cleanups and fixes

----------------------------------------------------------------
Alexandru Elisei (3):
      KVM: arm64: Hide AArch32 PMU registers when not available
      KVM: arm64: Don't BUG_ON() if emulated register table is unsorted
      KVM: arm64: Print emulated register table name when it is unsorted

Ard Biesheuvel (1):
      KVM: arm64: Avoid unnecessary absolute addressing via literals

Fuad Tabba (4):
      KVM: arm64: Wrapper for getting pmu_events
      KVM: arm64: Repack struct kvm_pmu to reduce size
      KVM: arm64: Pass pmu events to hyp via vcpu
      KVM: arm64: Reenable pmu in Protected Mode

Kalesh Singh (6):
      KVM: arm64: Introduce hyp_alloc_private_va_range()
      KVM: arm64: Introduce pkvm_alloc_private_va_range()
      KVM: arm64: Add guard pages for KVM nVHE hypervisor stack
      KVM: arm64: Add guard pages for pKVM (protected nVHE) hypervisor stack
      KVM: arm64: Detect and handle hypervisor stack overflows
      KVM: arm64: Symbolize the nVHE HYP addresses

Marc Zyngier (30):
      arm64: Expand ESR_ELx_WFx_ISS_TI to match its ARMv8.7 definition
      arm64: Add RV and RN fields for ESR_ELx_WFx_ISS
      arm64: Add HWCAP advertising FEAT_WFXT
      arm64: Add wfet()/wfit() helpers
      arm64: Use WFxT for __delay() when possible
      KVM: arm64: Simplify kvm_cpu_has_pending_timer()
      KVM: arm64: Introduce kvm_counter_compute_delta() helper
      KVM: arm64: Handle blocking WFIT instruction
      KVM: arm64: Offer early resume for non-blocking WFxT instructions
      KVM: arm64: Expose the WFXT feature to guests
      KVM: arm64: Fix new instances of 32bit ESRs
      Merge remote-tracking branch 'arm64/for-next/sme' into kvmarm-master/next
      Merge branch kvm-arm64/wfxt into kvmarm-master/next
      Merge branch kvm-arm64/hyp-stack-guard into kvmarm-master/next
      Merge branch kvm-arm64/aarch32-idreg-trap into kvmarm-master/next
      Documentation: Fix index.rst after psci.rst renaming
      irqchip/gic-v3: Exposes bit values for GICR_CTLR.{IR, CES}
      KVM: arm64: vgic-v3: Expose GICR_CTLR.RWP when disabling LPIs
      KVM: arm64: vgic-v3: Implement MMIO-based LPI invalidation
      KVM: arm64: vgic-v3: Advertise GICR_CTLR.{IR, CES} as a new GICD_IIDR revision
      KVM: arm64: vgic-v3: List M1 Pro/Max as requiring the SEIS workaround
      KVM: arm64: Hide KVM_REG_ARM_*_BMAP_BIT_COUNT from userspace
      KVM: arm64: pmu: Restore compilation when HW_PERF_EVENTS isn't selected
      KVM: arm64: Fix hypercall bitmap writeback when vcpus have already run
      Merge branch kvm-arm64/hcall-selection into kvmarm-master/next
      Merge branch kvm-arm64/psci-suspend into kvmarm-master/next
      Merge branch kvm-arm64/vgic-invlpir into kvmarm-master/next
      Merge branch kvm-arm64/per-vcpu-host-pmu-data into kvmarm-master/next
      Merge branch kvm-arm64/misc-5.19 into kvmarm-master/next
      Merge branch kvm-arm64/its-save-restore-fixes-5.19 into kvmarm-master/next

Mark Brown (25):
      arm64/sme: Provide ABI documentation for SME
      arm64/sme: System register and exception syndrome definitions
      arm64/sme: Manually encode SME instructions
      arm64/sme: Early CPU setup for SME
      arm64/sme: Basic enumeration support
      arm64/sme: Identify supported SME vector lengths at boot
      arm64/sme: Implement sysctl to set the default vector length
      arm64/sme: Implement vector length configuration prctl()s
      arm64/sme: Implement support for TPIDR2
      arm64/sme: Implement SVCR context switching
      arm64/sme: Implement streaming SVE context switching
      arm64/sme: Implement ZA context switching
      arm64/sme: Implement traps and syscall handling for SME
      arm64/sme: Disable ZA and streaming mode when handling signals
      arm64/sme: Implement streaming SVE signal handling
      arm64/sme: Implement ZA signal handling
      arm64/sme: Implement ptrace support for streaming mode SVE registers
      arm64/sme: Add ptrace support for ZA
      arm64/sme: Disable streaming mode and ZA when flushing CPU state
      arm64/sme: Save and restore streaming mode over EFI runtime calls
      KVM: arm64: Hide SME system registers from guests
      KVM: arm64: Trap SME usage in guest
      KVM: arm64: Handle SME host state when running guests
      arm64/sme: Provide Kconfig for SME
      arm64/sme: Add ID_AA64SMFR0_EL1 to __read_sysreg_by_encoding()

Oliver Upton (21):
      KVM: arm64: Return a bool from emulate_cp()
      KVM: arm64: Don't write to Rt unless sys_reg emulation succeeds
      KVM: arm64: Wire up CP15 feature registers to their AArch64 equivalents
      KVM: arm64: Plumb cp10 ID traps through the AArch64 sysreg handler
      KVM: arm64: Start trapping ID registers for 32 bit guests
      selftests: KVM: Rename psci_cpu_on_test to psci_test
      selftests: KVM: Create helper for making SMCCC calls
      KVM: arm64: Don't depend on fallthrough to hide SYSTEM_RESET2
      KVM: arm64: Dedupe vCPU power off helpers
      KVM: arm64: Track vCPU power state using MP state values
      KVM: arm64: Rename the KVM_REQ_SLEEP handler
      KVM: arm64: Return a value from check_vcpu_requests()
      KVM: arm64: Add support for userspace to suspend a vCPU
      KVM: arm64: Implement PSCI SYSTEM_SUSPEND
      selftests: KVM: Rename psci_cpu_on_test to psci_test
      selftests: KVM: Create helper for making SMCCC calls
      selftests: KVM: Use KVM_SET_MP_STATE to power off vCPU in psci_test
      selftests: KVM: Refactor psci_test to make it amenable to new tests
      selftests: KVM: Test SYSTEM_SUSPEND PSCI call
      KVM: arm64: pkvm: Drop unnecessary FP/SIMD trap handler
      KVM: arm64: pkvm: Don't mask already zeroed FEAT_SVE

Raghavendra Rao Ananta (9):
      KVM: arm64: Factor out firmware register handling from psci.c
      KVM: arm64: Setup a framework for hypercall bitmap firmware registers
      KVM: arm64: Add standard hypervisor firmware register
      KVM: arm64: Add vendor hypervisor firmware register
      Docs: KVM: Rename psci.rst to hypercalls.rst
      Docs: KVM: Add doc for the bitmap firmware registers
      tools: Import ARM SMCCC definitions
      selftests: KVM: aarch64: Introduce hypercall ABI test
      selftests: KVM: aarch64: Add the bitmap firmware registers to get-reg-list

Randy Dunlap (1):
      KVM: arm64: nvhe: Eliminate kernel-doc warnings

Ricardo Koller (4):
      KVM: arm64: vgic: Check that new ITEs could be saved in guest memory
      KVM: arm64: vgic: Add more checks when restoring ITS tables
      KVM: arm64: vgic: Do not ignore vgic_its_restore_cte failures
      KVM: arm64: vgic: Undo work in failed ITS restores

Stephen Rothwell (1):
      Documentation: KVM: Fix title level for PSCI_SUSPEND

Wan Jiabing (1):
      arm64/sme: Fix NULL check after kzalloc

 Documentation/arm64/cpu-feature-registers.rst      |   2 +
 Documentation/arm64/elf_hwcaps.rst                 |  37 ++
 Documentation/arm64/index.rst                      |   1 +
 Documentation/arm64/sme.rst                        | 428 +++++++++++++++
 Documentation/arm64/sve.rst                        |  70 ++-
 Documentation/virt/kvm/api.rst                     |  94 +++-
 Documentation/virt/kvm/arm/hypercalls.rst          | 138 +++++
 Documentation/virt/kvm/arm/index.rst               |   2 +-
 Documentation/virt/kvm/arm/psci.rst                |  77 ---
 arch/arm64/Kconfig                                 |  11 +
 arch/arm64/include/asm/barrier.h                   |   4 +
 arch/arm64/include/asm/cpu.h                       |   4 +
 arch/arm64/include/asm/cpufeature.h                |  24 +
 arch/arm64/include/asm/cputype.h                   |   8 +
 arch/arm64/include/asm/el2_setup.h                 |  64 ++-
 arch/arm64/include/asm/esr.h                       |  21 +-
 arch/arm64/include/asm/exception.h                 |   1 +
 arch/arm64/include/asm/fpsimd.h                    | 123 ++++-
 arch/arm64/include/asm/fpsimdmacros.h              |  87 +++
 arch/arm64/include/asm/hwcap.h                     |   9 +
 arch/arm64/include/asm/kvm_arm.h                   |   4 +-
 arch/arm64/include/asm/kvm_asm.h                   |   1 +
 arch/arm64/include/asm/kvm_emulate.h               |   7 -
 arch/arm64/include/asm/kvm_host.h                  |  45 +-
 arch/arm64/include/asm/kvm_mmu.h                   |   3 +
 arch/arm64/include/asm/processor.h                 |  26 +-
 arch/arm64/include/asm/sysreg.h                    |  67 +++
 arch/arm64/include/asm/thread_info.h               |   2 +
 arch/arm64/include/uapi/asm/hwcap.h                |   9 +
 arch/arm64/include/uapi/asm/kvm.h                  |  34 ++
 arch/arm64/include/uapi/asm/ptrace.h               |  69 ++-
 arch/arm64/include/uapi/asm/sigcontext.h           |  55 +-
 arch/arm64/kernel/cpufeature.c                     | 120 +++++
 arch/arm64/kernel/cpuinfo.c                        |  14 +
 arch/arm64/kernel/entry-common.c                   |  11 +
 arch/arm64/kernel/entry-fpsimd.S                   |  36 ++
 arch/arm64/kernel/fpsimd.c                         | 585 +++++++++++++++++++--
 arch/arm64/kernel/process.c                        |  44 +-
 arch/arm64/kernel/ptrace.c                         | 358 +++++++++++--
 arch/arm64/kernel/signal.c                         | 188 ++++++-
 arch/arm64/kernel/syscall.c                        |  29 +-
 arch/arm64/kernel/traps.c                          |   1 +
 arch/arm64/kvm/Makefile                            |   4 +-
 arch/arm64/kvm/arch_timer.c                        |  47 +-
 arch/arm64/kvm/arm.c                               | 158 +++++-
 arch/arm64/kvm/fpsimd.c                            |  43 +-
 arch/arm64/kvm/guest.c                             |  10 +-
 arch/arm64/kvm/handle_exit.c                       |  49 +-
 arch/arm64/kvm/hyp/include/nvhe/mm.h               |   6 +-
 arch/arm64/kvm/hyp/nvhe/host.S                     |  32 +-
 arch/arm64/kvm/hyp/nvhe/hyp-main.c                 |  18 +-
 arch/arm64/kvm/hyp/nvhe/mm.c                       |  78 ++-
 arch/arm64/kvm/hyp/nvhe/setup.c                    |  31 +-
 arch/arm64/kvm/hyp/nvhe/switch.c                   |  87 +--
 arch/arm64/kvm/hyp/nvhe/sys_regs.c                 |   3 -
 arch/arm64/kvm/hyp/vhe/switch.c                    |  11 +-
 arch/arm64/kvm/hypercalls.c                        | 327 +++++++++++-
 arch/arm64/kvm/mmu.c                               |  68 ++-
 arch/arm64/kvm/pmu-emul.c                          |   3 +-
 arch/arm64/kvm/pmu.c                               |  40 +-
 arch/arm64/kvm/psci.c                              | 248 ++-------
 arch/arm64/kvm/sys_regs.c                          | 305 ++++++++---
 arch/arm64/kvm/sys_regs.h                          |   9 +-
 arch/arm64/kvm/vgic/vgic-init.c                    |   7 +-
 arch/arm64/kvm/vgic/vgic-its.c                     | 160 ++++--
 arch/arm64/kvm/vgic/vgic-mmio-v2.c                 |  18 +-
 arch/arm64/kvm/vgic/vgic-mmio-v3.c                 | 125 ++++-
 arch/arm64/kvm/vgic/vgic-v3.c                      |   4 +
 arch/arm64/kvm/vgic/vgic.h                         |  10 +
 arch/arm64/lib/delay.c                             |  12 +-
 arch/arm64/tools/cpucaps                           |   3 +
 include/kvm/arm_arch_timer.h                       |   2 -
 include/kvm/arm_hypercalls.h                       |   8 +
 include/kvm/arm_pmu.h                              |  34 +-
 include/kvm/arm_psci.h                             |   7 -
 include/kvm/arm_vgic.h                             |   8 +-
 include/linux/irqchip/arm-gic-v3.h                 |   2 +
 include/uapi/linux/elf.h                           |   2 +
 include/uapi/linux/kvm.h                           |   4 +
 include/uapi/linux/prctl.h                         |   9 +
 kernel/sys.c                                       |  12 +
 scripts/kallsyms.c                                 |   3 +-
 tools/include/linux/arm-smccc.h                    | 193 +++++++
 tools/testing/selftests/kvm/.gitignore             |   3 +-
 tools/testing/selftests/kvm/Makefile               |   3 +-
 tools/testing/selftests/kvm/aarch64/get-reg-list.c |   8 +
 tools/testing/selftests/kvm/aarch64/hypercalls.c   | 336 ++++++++++++
 .../selftests/kvm/aarch64/psci_cpu_on_test.c       | 121 -----
 tools/testing/selftests/kvm/aarch64/psci_test.c    | 213 ++++++++
 .../selftests/kvm/include/aarch64/processor.h      |  22 +
 .../testing/selftests/kvm/lib/aarch64/processor.c  |  25 +
 tools/testing/selftests/kvm/steal_time.c           |  13 +-
 92 files changed, 4949 insertions(+), 908 deletions(-)
 create mode 100644 Documentation/arm64/sme.rst
 create mode 100644 Documentation/virt/kvm/arm/hypercalls.rst
 delete mode 100644 Documentation/virt/kvm/arm/psci.rst
 create mode 100644 tools/include/linux/arm-smccc.h
 create mode 100644 tools/testing/selftests/kvm/aarch64/hypercalls.c
 delete mode 100644 tools/testing/selftests/kvm/aarch64/psci_cpu_on_test.c
 create mode 100644 tools/testing/selftests/kvm/aarch64/psci_test.c

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [GIT PULL] KVM/arm64 updates for 5.19
  2022-05-19  9:27 ` Marc Zyngier
  (?)
@ 2022-05-20 11:55   ` Paolo Bonzini
  -1 siblings, 0 replies; 6+ messages in thread
From: Paolo Bonzini @ 2022-05-20 11:55 UTC (permalink / raw)
  To: Marc Zyngier
  Cc: Alexandru Elisei, Andrew Jones, Ard Biesheuvel, Catalin Marinas,
	David Brazdil, Eric Auger, Fuad Tabba, Gavin Shan, James Morse,
	Joey Gouly, Kalesh Singh, Marek Szyprowski, Mark Brown,
	Oliver Upton, Raghavendra Rao Ananta, Randy Dunlap,
	Reiji Watanabe, Ricardo Koller, Stephen Rothwell,
	Suzuki K Poulose, Szabolcs Nagy, Wan Jiabing, kvm, kvmarm,
	linux-arm-kernel, kernel-team

On 5/19/22 11:27, Marc Zyngier wrote:
> Hi Paolo,
> 
> Here's the bulk of the KVM/arm64 updates for 5.19. Major features are
> guard pages for the EL2 stacks, save/restore of the guest-visible
> hypercall configuration and PSCI suspend support. Further details in
> the tag description.
> 
> Note that this PR contains a shared branch with the arm64 tree
> containing the SME patches to resolve conflicts with the WFxT support
> branch.

Pulled, thanks.  I solved the conflict for KVM_EXIT_SYSTEM_EVENT values 
in your favor.

Paolo

> Please pull,
> 
> 	M.
> 
> The following changes since commit 672c0c5173427e6b3e2a9bbb7be51ceeec78093a:
> 
>    Linux 5.18-rc5 (2022-05-01 13:57:58 -0700)
> 
> are available in the Git repository at:
> 
>    git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm.git tags/kvmarm-5.19
> 
> for you to fetch changes up to 5c0ad551e9aa6188f2bda0977c1cb6768a2b74ef:
> 
>    Merge branch kvm-arm64/its-save-restore-fixes-5.19 into kvmarm-master/next (2022-05-16 17:48:36 +0100)
> 
> ----------------------------------------------------------------
> KVM/arm64 updates for 5.19
> 
> - Add support for the ARMv8.6 WFxT extension
> 
> - Guard pages for the EL2 stacks
> 
> - Trap and emulate AArch32 ID registers to hide unsupported features
> 
> - Ability to select and save/restore the set of hypercalls exposed
>    to the guest
> 
> - Support for PSCI-initiated suspend in collaboration with userspace
> 
> - GICv3 register-based LPI invalidation support
> 
> - Move host PMU event merging into the vcpu data structure
> 
> - GICv3 ITS save/restore fixes
> 
> - The usual set of small-scale cleanups and fixes
> 
> ----------------------------------------------------------------
> Alexandru Elisei (3):
>        KVM: arm64: Hide AArch32 PMU registers when not available
>        KVM: arm64: Don't BUG_ON() if emulated register table is unsorted
>        KVM: arm64: Print emulated register table name when it is unsorted
> 
> Ard Biesheuvel (1):
>        KVM: arm64: Avoid unnecessary absolute addressing via literals
> 
> Fuad Tabba (4):
>        KVM: arm64: Wrapper for getting pmu_events
>        KVM: arm64: Repack struct kvm_pmu to reduce size
>        KVM: arm64: Pass pmu events to hyp via vcpu
>        KVM: arm64: Reenable pmu in Protected Mode
> 
> Kalesh Singh (6):
>        KVM: arm64: Introduce hyp_alloc_private_va_range()
>        KVM: arm64: Introduce pkvm_alloc_private_va_range()
>        KVM: arm64: Add guard pages for KVM nVHE hypervisor stack
>        KVM: arm64: Add guard pages for pKVM (protected nVHE) hypervisor stack
>        KVM: arm64: Detect and handle hypervisor stack overflows
>        KVM: arm64: Symbolize the nVHE HYP addresses
> 
> Marc Zyngier (30):
>        arm64: Expand ESR_ELx_WFx_ISS_TI to match its ARMv8.7 definition
>        arm64: Add RV and RN fields for ESR_ELx_WFx_ISS
>        arm64: Add HWCAP advertising FEAT_WFXT
>        arm64: Add wfet()/wfit() helpers
>        arm64: Use WFxT for __delay() when possible
>        KVM: arm64: Simplify kvm_cpu_has_pending_timer()
>        KVM: arm64: Introduce kvm_counter_compute_delta() helper
>        KVM: arm64: Handle blocking WFIT instruction
>        KVM: arm64: Offer early resume for non-blocking WFxT instructions
>        KVM: arm64: Expose the WFXT feature to guests
>        KVM: arm64: Fix new instances of 32bit ESRs
>        Merge remote-tracking branch 'arm64/for-next/sme' into kvmarm-master/next
>        Merge branch kvm-arm64/wfxt into kvmarm-master/next
>        Merge branch kvm-arm64/hyp-stack-guard into kvmarm-master/next
>        Merge branch kvm-arm64/aarch32-idreg-trap into kvmarm-master/next
>        Documentation: Fix index.rst after psci.rst renaming
>        irqchip/gic-v3: Exposes bit values for GICR_CTLR.{IR, CES}
>        KVM: arm64: vgic-v3: Expose GICR_CTLR.RWP when disabling LPIs
>        KVM: arm64: vgic-v3: Implement MMIO-based LPI invalidation
>        KVM: arm64: vgic-v3: Advertise GICR_CTLR.{IR, CES} as a new GICD_IIDR revision
>        KVM: arm64: vgic-v3: List M1 Pro/Max as requiring the SEIS workaround
>        KVM: arm64: Hide KVM_REG_ARM_*_BMAP_BIT_COUNT from userspace
>        KVM: arm64: pmu: Restore compilation when HW_PERF_EVENTS isn't selected
>        KVM: arm64: Fix hypercall bitmap writeback when vcpus have already run
>        Merge branch kvm-arm64/hcall-selection into kvmarm-master/next
>        Merge branch kvm-arm64/psci-suspend into kvmarm-master/next
>        Merge branch kvm-arm64/vgic-invlpir into kvmarm-master/next
>        Merge branch kvm-arm64/per-vcpu-host-pmu-data into kvmarm-master/next
>        Merge branch kvm-arm64/misc-5.19 into kvmarm-master/next
>        Merge branch kvm-arm64/its-save-restore-fixes-5.19 into kvmarm-master/next
> 
> Mark Brown (25):
>        arm64/sme: Provide ABI documentation for SME
>        arm64/sme: System register and exception syndrome definitions
>        arm64/sme: Manually encode SME instructions
>        arm64/sme: Early CPU setup for SME
>        arm64/sme: Basic enumeration support
>        arm64/sme: Identify supported SME vector lengths at boot
>        arm64/sme: Implement sysctl to set the default vector length
>        arm64/sme: Implement vector length configuration prctl()s
>        arm64/sme: Implement support for TPIDR2
>        arm64/sme: Implement SVCR context switching
>        arm64/sme: Implement streaming SVE context switching
>        arm64/sme: Implement ZA context switching
>        arm64/sme: Implement traps and syscall handling for SME
>        arm64/sme: Disable ZA and streaming mode when handling signals
>        arm64/sme: Implement streaming SVE signal handling
>        arm64/sme: Implement ZA signal handling
>        arm64/sme: Implement ptrace support for streaming mode SVE registers
>        arm64/sme: Add ptrace support for ZA
>        arm64/sme: Disable streaming mode and ZA when flushing CPU state
>        arm64/sme: Save and restore streaming mode over EFI runtime calls
>        KVM: arm64: Hide SME system registers from guests
>        KVM: arm64: Trap SME usage in guest
>        KVM: arm64: Handle SME host state when running guests
>        arm64/sme: Provide Kconfig for SME
>        arm64/sme: Add ID_AA64SMFR0_EL1 to __read_sysreg_by_encoding()
> 
> Oliver Upton (21):
>        KVM: arm64: Return a bool from emulate_cp()
>        KVM: arm64: Don't write to Rt unless sys_reg emulation succeeds
>        KVM: arm64: Wire up CP15 feature registers to their AArch64 equivalents
>        KVM: arm64: Plumb cp10 ID traps through the AArch64 sysreg handler
>        KVM: arm64: Start trapping ID registers for 32 bit guests
>        selftests: KVM: Rename psci_cpu_on_test to psci_test
>        selftests: KVM: Create helper for making SMCCC calls
>        KVM: arm64: Don't depend on fallthrough to hide SYSTEM_RESET2
>        KVM: arm64: Dedupe vCPU power off helpers
>        KVM: arm64: Track vCPU power state using MP state values
>        KVM: arm64: Rename the KVM_REQ_SLEEP handler
>        KVM: arm64: Return a value from check_vcpu_requests()
>        KVM: arm64: Add support for userspace to suspend a vCPU
>        KVM: arm64: Implement PSCI SYSTEM_SUSPEND
>        selftests: KVM: Rename psci_cpu_on_test to psci_test
>        selftests: KVM: Create helper for making SMCCC calls
>        selftests: KVM: Use KVM_SET_MP_STATE to power off vCPU in psci_test
>        selftests: KVM: Refactor psci_test to make it amenable to new tests
>        selftests: KVM: Test SYSTEM_SUSPEND PSCI call
>        KVM: arm64: pkvm: Drop unnecessary FP/SIMD trap handler
>        KVM: arm64: pkvm: Don't mask already zeroed FEAT_SVE
> 
> Raghavendra Rao Ananta (9):
>        KVM: arm64: Factor out firmware register handling from psci.c
>        KVM: arm64: Setup a framework for hypercall bitmap firmware registers
>        KVM: arm64: Add standard hypervisor firmware register
>        KVM: arm64: Add vendor hypervisor firmware register
>        Docs: KVM: Rename psci.rst to hypercalls.rst
>        Docs: KVM: Add doc for the bitmap firmware registers
>        tools: Import ARM SMCCC definitions
>        selftests: KVM: aarch64: Introduce hypercall ABI test
>        selftests: KVM: aarch64: Add the bitmap firmware registers to get-reg-list
> 
> Randy Dunlap (1):
>        KVM: arm64: nvhe: Eliminate kernel-doc warnings
> 
> Ricardo Koller (4):
>        KVM: arm64: vgic: Check that new ITEs could be saved in guest memory
>        KVM: arm64: vgic: Add more checks when restoring ITS tables
>        KVM: arm64: vgic: Do not ignore vgic_its_restore_cte failures
>        KVM: arm64: vgic: Undo work in failed ITS restores
> 
> Stephen Rothwell (1):
>        Documentation: KVM: Fix title level for PSCI_SUSPEND
> 
> Wan Jiabing (1):
>        arm64/sme: Fix NULL check after kzalloc
> 
>   Documentation/arm64/cpu-feature-registers.rst      |   2 +
>   Documentation/arm64/elf_hwcaps.rst                 |  37 ++
>   Documentation/arm64/index.rst                      |   1 +
>   Documentation/arm64/sme.rst                        | 428 +++++++++++++++
>   Documentation/arm64/sve.rst                        |  70 ++-
>   Documentation/virt/kvm/api.rst                     |  94 +++-
>   Documentation/virt/kvm/arm/hypercalls.rst          | 138 +++++
>   Documentation/virt/kvm/arm/index.rst               |   2 +-
>   Documentation/virt/kvm/arm/psci.rst                |  77 ---
>   arch/arm64/Kconfig                                 |  11 +
>   arch/arm64/include/asm/barrier.h                   |   4 +
>   arch/arm64/include/asm/cpu.h                       |   4 +
>   arch/arm64/include/asm/cpufeature.h                |  24 +
>   arch/arm64/include/asm/cputype.h                   |   8 +
>   arch/arm64/include/asm/el2_setup.h                 |  64 ++-
>   arch/arm64/include/asm/esr.h                       |  21 +-
>   arch/arm64/include/asm/exception.h                 |   1 +
>   arch/arm64/include/asm/fpsimd.h                    | 123 ++++-
>   arch/arm64/include/asm/fpsimdmacros.h              |  87 +++
>   arch/arm64/include/asm/hwcap.h                     |   9 +
>   arch/arm64/include/asm/kvm_arm.h                   |   4 +-
>   arch/arm64/include/asm/kvm_asm.h                   |   1 +
>   arch/arm64/include/asm/kvm_emulate.h               |   7 -
>   arch/arm64/include/asm/kvm_host.h                  |  45 +-
>   arch/arm64/include/asm/kvm_mmu.h                   |   3 +
>   arch/arm64/include/asm/processor.h                 |  26 +-
>   arch/arm64/include/asm/sysreg.h                    |  67 +++
>   arch/arm64/include/asm/thread_info.h               |   2 +
>   arch/arm64/include/uapi/asm/hwcap.h                |   9 +
>   arch/arm64/include/uapi/asm/kvm.h                  |  34 ++
>   arch/arm64/include/uapi/asm/ptrace.h               |  69 ++-
>   arch/arm64/include/uapi/asm/sigcontext.h           |  55 +-
>   arch/arm64/kernel/cpufeature.c                     | 120 +++++
>   arch/arm64/kernel/cpuinfo.c                        |  14 +
>   arch/arm64/kernel/entry-common.c                   |  11 +
>   arch/arm64/kernel/entry-fpsimd.S                   |  36 ++
>   arch/arm64/kernel/fpsimd.c                         | 585 +++++++++++++++++++--
>   arch/arm64/kernel/process.c                        |  44 +-
>   arch/arm64/kernel/ptrace.c                         | 358 +++++++++++--
>   arch/arm64/kernel/signal.c                         | 188 ++++++-
>   arch/arm64/kernel/syscall.c                        |  29 +-
>   arch/arm64/kernel/traps.c                          |   1 +
>   arch/arm64/kvm/Makefile                            |   4 +-
>   arch/arm64/kvm/arch_timer.c                        |  47 +-
>   arch/arm64/kvm/arm.c                               | 158 +++++-
>   arch/arm64/kvm/fpsimd.c                            |  43 +-
>   arch/arm64/kvm/guest.c                             |  10 +-
>   arch/arm64/kvm/handle_exit.c                       |  49 +-
>   arch/arm64/kvm/hyp/include/nvhe/mm.h               |   6 +-
>   arch/arm64/kvm/hyp/nvhe/host.S                     |  32 +-
>   arch/arm64/kvm/hyp/nvhe/hyp-main.c                 |  18 +-
>   arch/arm64/kvm/hyp/nvhe/mm.c                       |  78 ++-
>   arch/arm64/kvm/hyp/nvhe/setup.c                    |  31 +-
>   arch/arm64/kvm/hyp/nvhe/switch.c                   |  87 +--
>   arch/arm64/kvm/hyp/nvhe/sys_regs.c                 |   3 -
>   arch/arm64/kvm/hyp/vhe/switch.c                    |  11 +-
>   arch/arm64/kvm/hypercalls.c                        | 327 +++++++++++-
>   arch/arm64/kvm/mmu.c                               |  68 ++-
>   arch/arm64/kvm/pmu-emul.c                          |   3 +-
>   arch/arm64/kvm/pmu.c                               |  40 +-
>   arch/arm64/kvm/psci.c                              | 248 ++-------
>   arch/arm64/kvm/sys_regs.c                          | 305 ++++++++---
>   arch/arm64/kvm/sys_regs.h                          |   9 +-
>   arch/arm64/kvm/vgic/vgic-init.c                    |   7 +-
>   arch/arm64/kvm/vgic/vgic-its.c                     | 160 ++++--
>   arch/arm64/kvm/vgic/vgic-mmio-v2.c                 |  18 +-
>   arch/arm64/kvm/vgic/vgic-mmio-v3.c                 | 125 ++++-
>   arch/arm64/kvm/vgic/vgic-v3.c                      |   4 +
>   arch/arm64/kvm/vgic/vgic.h                         |  10 +
>   arch/arm64/lib/delay.c                             |  12 +-
>   arch/arm64/tools/cpucaps                           |   3 +
>   include/kvm/arm_arch_timer.h                       |   2 -
>   include/kvm/arm_hypercalls.h                       |   8 +
>   include/kvm/arm_pmu.h                              |  34 +-
>   include/kvm/arm_psci.h                             |   7 -
>   include/kvm/arm_vgic.h                             |   8 +-
>   include/linux/irqchip/arm-gic-v3.h                 |   2 +
>   include/uapi/linux/elf.h                           |   2 +
>   include/uapi/linux/kvm.h                           |   4 +
>   include/uapi/linux/prctl.h                         |   9 +
>   kernel/sys.c                                       |  12 +
>   scripts/kallsyms.c                                 |   3 +-
>   tools/include/linux/arm-smccc.h                    | 193 +++++++
>   tools/testing/selftests/kvm/.gitignore             |   3 +-
>   tools/testing/selftests/kvm/Makefile               |   3 +-
>   tools/testing/selftests/kvm/aarch64/get-reg-list.c |   8 +
>   tools/testing/selftests/kvm/aarch64/hypercalls.c   | 336 ++++++++++++
>   .../selftests/kvm/aarch64/psci_cpu_on_test.c       | 121 -----
>   tools/testing/selftests/kvm/aarch64/psci_test.c    | 213 ++++++++
>   .../selftests/kvm/include/aarch64/processor.h      |  22 +
>   .../testing/selftests/kvm/lib/aarch64/processor.c  |  25 +
>   tools/testing/selftests/kvm/steal_time.c           |  13 +-
>   92 files changed, 4949 insertions(+), 908 deletions(-)
>   create mode 100644 Documentation/arm64/sme.rst
>   create mode 100644 Documentation/virt/kvm/arm/hypercalls.rst
>   delete mode 100644 Documentation/virt/kvm/arm/psci.rst
>   create mode 100644 tools/include/linux/arm-smccc.h
>   create mode 100644 tools/testing/selftests/kvm/aarch64/hypercalls.c
>   delete mode 100644 tools/testing/selftests/kvm/aarch64/psci_cpu_on_test.c
>   create mode 100644 tools/testing/selftests/kvm/aarch64/psci_test.c
> 


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [GIT PULL] KVM/arm64 updates for 5.19
@ 2022-05-20 11:55   ` Paolo Bonzini
  0 siblings, 0 replies; 6+ messages in thread
From: Paolo Bonzini @ 2022-05-20 11:55 UTC (permalink / raw)
  To: Marc Zyngier
  Cc: kvm, Szabolcs Nagy, Catalin Marinas, Joey Gouly,
	Marek Szyprowski, Stephen Rothwell, Wan Jiabing, kvmarm,
	linux-arm-kernel, kernel-team, Mark Brown, Randy Dunlap

On 5/19/22 11:27, Marc Zyngier wrote:
> Hi Paolo,
> 
> Here's the bulk of the KVM/arm64 updates for 5.19. Major features are
> guard pages for the EL2 stacks, save/restore of the guest-visible
> hypercall configuration and PSCI suspend support. Further details in
> the tag description.
> 
> Note that this PR contains a shared branch with the arm64 tree
> containing the SME patches to resolve conflicts with the WFxT support
> branch.

Pulled, thanks.  I solved the conflict for KVM_EXIT_SYSTEM_EVENT values 
in your favor.

Paolo

> Please pull,
> 
> 	M.
> 
> The following changes since commit 672c0c5173427e6b3e2a9bbb7be51ceeec78093a:
> 
>    Linux 5.18-rc5 (2022-05-01 13:57:58 -0700)
> 
> are available in the Git repository at:
> 
>    git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm.git tags/kvmarm-5.19
> 
> for you to fetch changes up to 5c0ad551e9aa6188f2bda0977c1cb6768a2b74ef:
> 
>    Merge branch kvm-arm64/its-save-restore-fixes-5.19 into kvmarm-master/next (2022-05-16 17:48:36 +0100)
> 
> ----------------------------------------------------------------
> KVM/arm64 updates for 5.19
> 
> - Add support for the ARMv8.6 WFxT extension
> 
> - Guard pages for the EL2 stacks
> 
> - Trap and emulate AArch32 ID registers to hide unsupported features
> 
> - Ability to select and save/restore the set of hypercalls exposed
>    to the guest
> 
> - Support for PSCI-initiated suspend in collaboration with userspace
> 
> - GICv3 register-based LPI invalidation support
> 
> - Move host PMU event merging into the vcpu data structure
> 
> - GICv3 ITS save/restore fixes
> 
> - The usual set of small-scale cleanups and fixes
> 
> ----------------------------------------------------------------
> Alexandru Elisei (3):
>        KVM: arm64: Hide AArch32 PMU registers when not available
>        KVM: arm64: Don't BUG_ON() if emulated register table is unsorted
>        KVM: arm64: Print emulated register table name when it is unsorted
> 
> Ard Biesheuvel (1):
>        KVM: arm64: Avoid unnecessary absolute addressing via literals
> 
> Fuad Tabba (4):
>        KVM: arm64: Wrapper for getting pmu_events
>        KVM: arm64: Repack struct kvm_pmu to reduce size
>        KVM: arm64: Pass pmu events to hyp via vcpu
>        KVM: arm64: Reenable pmu in Protected Mode
> 
> Kalesh Singh (6):
>        KVM: arm64: Introduce hyp_alloc_private_va_range()
>        KVM: arm64: Introduce pkvm_alloc_private_va_range()
>        KVM: arm64: Add guard pages for KVM nVHE hypervisor stack
>        KVM: arm64: Add guard pages for pKVM (protected nVHE) hypervisor stack
>        KVM: arm64: Detect and handle hypervisor stack overflows
>        KVM: arm64: Symbolize the nVHE HYP addresses
> 
> Marc Zyngier (30):
>        arm64: Expand ESR_ELx_WFx_ISS_TI to match its ARMv8.7 definition
>        arm64: Add RV and RN fields for ESR_ELx_WFx_ISS
>        arm64: Add HWCAP advertising FEAT_WFXT
>        arm64: Add wfet()/wfit() helpers
>        arm64: Use WFxT for __delay() when possible
>        KVM: arm64: Simplify kvm_cpu_has_pending_timer()
>        KVM: arm64: Introduce kvm_counter_compute_delta() helper
>        KVM: arm64: Handle blocking WFIT instruction
>        KVM: arm64: Offer early resume for non-blocking WFxT instructions
>        KVM: arm64: Expose the WFXT feature to guests
>        KVM: arm64: Fix new instances of 32bit ESRs
>        Merge remote-tracking branch 'arm64/for-next/sme' into kvmarm-master/next
>        Merge branch kvm-arm64/wfxt into kvmarm-master/next
>        Merge branch kvm-arm64/hyp-stack-guard into kvmarm-master/next
>        Merge branch kvm-arm64/aarch32-idreg-trap into kvmarm-master/next
>        Documentation: Fix index.rst after psci.rst renaming
>        irqchip/gic-v3: Exposes bit values for GICR_CTLR.{IR, CES}
>        KVM: arm64: vgic-v3: Expose GICR_CTLR.RWP when disabling LPIs
>        KVM: arm64: vgic-v3: Implement MMIO-based LPI invalidation
>        KVM: arm64: vgic-v3: Advertise GICR_CTLR.{IR, CES} as a new GICD_IIDR revision
>        KVM: arm64: vgic-v3: List M1 Pro/Max as requiring the SEIS workaround
>        KVM: arm64: Hide KVM_REG_ARM_*_BMAP_BIT_COUNT from userspace
>        KVM: arm64: pmu: Restore compilation when HW_PERF_EVENTS isn't selected
>        KVM: arm64: Fix hypercall bitmap writeback when vcpus have already run
>        Merge branch kvm-arm64/hcall-selection into kvmarm-master/next
>        Merge branch kvm-arm64/psci-suspend into kvmarm-master/next
>        Merge branch kvm-arm64/vgic-invlpir into kvmarm-master/next
>        Merge branch kvm-arm64/per-vcpu-host-pmu-data into kvmarm-master/next
>        Merge branch kvm-arm64/misc-5.19 into kvmarm-master/next
>        Merge branch kvm-arm64/its-save-restore-fixes-5.19 into kvmarm-master/next
> 
> Mark Brown (25):
>        arm64/sme: Provide ABI documentation for SME
>        arm64/sme: System register and exception syndrome definitions
>        arm64/sme: Manually encode SME instructions
>        arm64/sme: Early CPU setup for SME
>        arm64/sme: Basic enumeration support
>        arm64/sme: Identify supported SME vector lengths at boot
>        arm64/sme: Implement sysctl to set the default vector length
>        arm64/sme: Implement vector length configuration prctl()s
>        arm64/sme: Implement support for TPIDR2
>        arm64/sme: Implement SVCR context switching
>        arm64/sme: Implement streaming SVE context switching
>        arm64/sme: Implement ZA context switching
>        arm64/sme: Implement traps and syscall handling for SME
>        arm64/sme: Disable ZA and streaming mode when handling signals
>        arm64/sme: Implement streaming SVE signal handling
>        arm64/sme: Implement ZA signal handling
>        arm64/sme: Implement ptrace support for streaming mode SVE registers
>        arm64/sme: Add ptrace support for ZA
>        arm64/sme: Disable streaming mode and ZA when flushing CPU state
>        arm64/sme: Save and restore streaming mode over EFI runtime calls
>        KVM: arm64: Hide SME system registers from guests
>        KVM: arm64: Trap SME usage in guest
>        KVM: arm64: Handle SME host state when running guests
>        arm64/sme: Provide Kconfig for SME
>        arm64/sme: Add ID_AA64SMFR0_EL1 to __read_sysreg_by_encoding()
> 
> Oliver Upton (21):
>        KVM: arm64: Return a bool from emulate_cp()
>        KVM: arm64: Don't write to Rt unless sys_reg emulation succeeds
>        KVM: arm64: Wire up CP15 feature registers to their AArch64 equivalents
>        KVM: arm64: Plumb cp10 ID traps through the AArch64 sysreg handler
>        KVM: arm64: Start trapping ID registers for 32 bit guests
>        selftests: KVM: Rename psci_cpu_on_test to psci_test
>        selftests: KVM: Create helper for making SMCCC calls
>        KVM: arm64: Don't depend on fallthrough to hide SYSTEM_RESET2
>        KVM: arm64: Dedupe vCPU power off helpers
>        KVM: arm64: Track vCPU power state using MP state values
>        KVM: arm64: Rename the KVM_REQ_SLEEP handler
>        KVM: arm64: Return a value from check_vcpu_requests()
>        KVM: arm64: Add support for userspace to suspend a vCPU
>        KVM: arm64: Implement PSCI SYSTEM_SUSPEND
>        selftests: KVM: Rename psci_cpu_on_test to psci_test
>        selftests: KVM: Create helper for making SMCCC calls
>        selftests: KVM: Use KVM_SET_MP_STATE to power off vCPU in psci_test
>        selftests: KVM: Refactor psci_test to make it amenable to new tests
>        selftests: KVM: Test SYSTEM_SUSPEND PSCI call
>        KVM: arm64: pkvm: Drop unnecessary FP/SIMD trap handler
>        KVM: arm64: pkvm: Don't mask already zeroed FEAT_SVE
> 
> Raghavendra Rao Ananta (9):
>        KVM: arm64: Factor out firmware register handling from psci.c
>        KVM: arm64: Setup a framework for hypercall bitmap firmware registers
>        KVM: arm64: Add standard hypervisor firmware register
>        KVM: arm64: Add vendor hypervisor firmware register
>        Docs: KVM: Rename psci.rst to hypercalls.rst
>        Docs: KVM: Add doc for the bitmap firmware registers
>        tools: Import ARM SMCCC definitions
>        selftests: KVM: aarch64: Introduce hypercall ABI test
>        selftests: KVM: aarch64: Add the bitmap firmware registers to get-reg-list
> 
> Randy Dunlap (1):
>        KVM: arm64: nvhe: Eliminate kernel-doc warnings
> 
> Ricardo Koller (4):
>        KVM: arm64: vgic: Check that new ITEs could be saved in guest memory
>        KVM: arm64: vgic: Add more checks when restoring ITS tables
>        KVM: arm64: vgic: Do not ignore vgic_its_restore_cte failures
>        KVM: arm64: vgic: Undo work in failed ITS restores
> 
> Stephen Rothwell (1):
>        Documentation: KVM: Fix title level for PSCI_SUSPEND
> 
> Wan Jiabing (1):
>        arm64/sme: Fix NULL check after kzalloc
> 
>   Documentation/arm64/cpu-feature-registers.rst      |   2 +
>   Documentation/arm64/elf_hwcaps.rst                 |  37 ++
>   Documentation/arm64/index.rst                      |   1 +
>   Documentation/arm64/sme.rst                        | 428 +++++++++++++++
>   Documentation/arm64/sve.rst                        |  70 ++-
>   Documentation/virt/kvm/api.rst                     |  94 +++-
>   Documentation/virt/kvm/arm/hypercalls.rst          | 138 +++++
>   Documentation/virt/kvm/arm/index.rst               |   2 +-
>   Documentation/virt/kvm/arm/psci.rst                |  77 ---
>   arch/arm64/Kconfig                                 |  11 +
>   arch/arm64/include/asm/barrier.h                   |   4 +
>   arch/arm64/include/asm/cpu.h                       |   4 +
>   arch/arm64/include/asm/cpufeature.h                |  24 +
>   arch/arm64/include/asm/cputype.h                   |   8 +
>   arch/arm64/include/asm/el2_setup.h                 |  64 ++-
>   arch/arm64/include/asm/esr.h                       |  21 +-
>   arch/arm64/include/asm/exception.h                 |   1 +
>   arch/arm64/include/asm/fpsimd.h                    | 123 ++++-
>   arch/arm64/include/asm/fpsimdmacros.h              |  87 +++
>   arch/arm64/include/asm/hwcap.h                     |   9 +
>   arch/arm64/include/asm/kvm_arm.h                   |   4 +-
>   arch/arm64/include/asm/kvm_asm.h                   |   1 +
>   arch/arm64/include/asm/kvm_emulate.h               |   7 -
>   arch/arm64/include/asm/kvm_host.h                  |  45 +-
>   arch/arm64/include/asm/kvm_mmu.h                   |   3 +
>   arch/arm64/include/asm/processor.h                 |  26 +-
>   arch/arm64/include/asm/sysreg.h                    |  67 +++
>   arch/arm64/include/asm/thread_info.h               |   2 +
>   arch/arm64/include/uapi/asm/hwcap.h                |   9 +
>   arch/arm64/include/uapi/asm/kvm.h                  |  34 ++
>   arch/arm64/include/uapi/asm/ptrace.h               |  69 ++-
>   arch/arm64/include/uapi/asm/sigcontext.h           |  55 +-
>   arch/arm64/kernel/cpufeature.c                     | 120 +++++
>   arch/arm64/kernel/cpuinfo.c                        |  14 +
>   arch/arm64/kernel/entry-common.c                   |  11 +
>   arch/arm64/kernel/entry-fpsimd.S                   |  36 ++
>   arch/arm64/kernel/fpsimd.c                         | 585 +++++++++++++++++++--
>   arch/arm64/kernel/process.c                        |  44 +-
>   arch/arm64/kernel/ptrace.c                         | 358 +++++++++++--
>   arch/arm64/kernel/signal.c                         | 188 ++++++-
>   arch/arm64/kernel/syscall.c                        |  29 +-
>   arch/arm64/kernel/traps.c                          |   1 +
>   arch/arm64/kvm/Makefile                            |   4 +-
>   arch/arm64/kvm/arch_timer.c                        |  47 +-
>   arch/arm64/kvm/arm.c                               | 158 +++++-
>   arch/arm64/kvm/fpsimd.c                            |  43 +-
>   arch/arm64/kvm/guest.c                             |  10 +-
>   arch/arm64/kvm/handle_exit.c                       |  49 +-
>   arch/arm64/kvm/hyp/include/nvhe/mm.h               |   6 +-
>   arch/arm64/kvm/hyp/nvhe/host.S                     |  32 +-
>   arch/arm64/kvm/hyp/nvhe/hyp-main.c                 |  18 +-
>   arch/arm64/kvm/hyp/nvhe/mm.c                       |  78 ++-
>   arch/arm64/kvm/hyp/nvhe/setup.c                    |  31 +-
>   arch/arm64/kvm/hyp/nvhe/switch.c                   |  87 +--
>   arch/arm64/kvm/hyp/nvhe/sys_regs.c                 |   3 -
>   arch/arm64/kvm/hyp/vhe/switch.c                    |  11 +-
>   arch/arm64/kvm/hypercalls.c                        | 327 +++++++++++-
>   arch/arm64/kvm/mmu.c                               |  68 ++-
>   arch/arm64/kvm/pmu-emul.c                          |   3 +-
>   arch/arm64/kvm/pmu.c                               |  40 +-
>   arch/arm64/kvm/psci.c                              | 248 ++-------
>   arch/arm64/kvm/sys_regs.c                          | 305 ++++++++---
>   arch/arm64/kvm/sys_regs.h                          |   9 +-
>   arch/arm64/kvm/vgic/vgic-init.c                    |   7 +-
>   arch/arm64/kvm/vgic/vgic-its.c                     | 160 ++++--
>   arch/arm64/kvm/vgic/vgic-mmio-v2.c                 |  18 +-
>   arch/arm64/kvm/vgic/vgic-mmio-v3.c                 | 125 ++++-
>   arch/arm64/kvm/vgic/vgic-v3.c                      |   4 +
>   arch/arm64/kvm/vgic/vgic.h                         |  10 +
>   arch/arm64/lib/delay.c                             |  12 +-
>   arch/arm64/tools/cpucaps                           |   3 +
>   include/kvm/arm_arch_timer.h                       |   2 -
>   include/kvm/arm_hypercalls.h                       |   8 +
>   include/kvm/arm_pmu.h                              |  34 +-
>   include/kvm/arm_psci.h                             |   7 -
>   include/kvm/arm_vgic.h                             |   8 +-
>   include/linux/irqchip/arm-gic-v3.h                 |   2 +
>   include/uapi/linux/elf.h                           |   2 +
>   include/uapi/linux/kvm.h                           |   4 +
>   include/uapi/linux/prctl.h                         |   9 +
>   kernel/sys.c                                       |  12 +
>   scripts/kallsyms.c                                 |   3 +-
>   tools/include/linux/arm-smccc.h                    | 193 +++++++
>   tools/testing/selftests/kvm/.gitignore             |   3 +-
>   tools/testing/selftests/kvm/Makefile               |   3 +-
>   tools/testing/selftests/kvm/aarch64/get-reg-list.c |   8 +
>   tools/testing/selftests/kvm/aarch64/hypercalls.c   | 336 ++++++++++++
>   .../selftests/kvm/aarch64/psci_cpu_on_test.c       | 121 -----
>   tools/testing/selftests/kvm/aarch64/psci_test.c    | 213 ++++++++
>   .../selftests/kvm/include/aarch64/processor.h      |  22 +
>   .../testing/selftests/kvm/lib/aarch64/processor.c  |  25 +
>   tools/testing/selftests/kvm/steal_time.c           |  13 +-
>   92 files changed, 4949 insertions(+), 908 deletions(-)
>   create mode 100644 Documentation/arm64/sme.rst
>   create mode 100644 Documentation/virt/kvm/arm/hypercalls.rst
>   delete mode 100644 Documentation/virt/kvm/arm/psci.rst
>   create mode 100644 tools/include/linux/arm-smccc.h
>   create mode 100644 tools/testing/selftests/kvm/aarch64/hypercalls.c
>   delete mode 100644 tools/testing/selftests/kvm/aarch64/psci_cpu_on_test.c
>   create mode 100644 tools/testing/selftests/kvm/aarch64/psci_test.c
> 

_______________________________________________
kvmarm mailing list
kvmarm@lists.cs.columbia.edu
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [GIT PULL] KVM/arm64 updates for 5.19
@ 2022-05-20 11:55   ` Paolo Bonzini
  0 siblings, 0 replies; 6+ messages in thread
From: Paolo Bonzini @ 2022-05-20 11:55 UTC (permalink / raw)
  To: Marc Zyngier
  Cc: Alexandru Elisei, Andrew Jones, Ard Biesheuvel, Catalin Marinas,
	David Brazdil, Eric Auger, Fuad Tabba, Gavin Shan, James Morse,
	Joey Gouly, Kalesh Singh, Marek Szyprowski, Mark Brown,
	Oliver Upton, Raghavendra Rao Ananta, Randy Dunlap,
	Reiji Watanabe, Ricardo Koller, Stephen Rothwell,
	Suzuki K Poulose, Szabolcs Nagy, Wan Jiabing, kvm, kvmarm,
	linux-arm-kernel, kernel-team

On 5/19/22 11:27, Marc Zyngier wrote:
> Hi Paolo,
> 
> Here's the bulk of the KVM/arm64 updates for 5.19. Major features are
> guard pages for the EL2 stacks, save/restore of the guest-visible
> hypercall configuration and PSCI suspend support. Further details in
> the tag description.
> 
> Note that this PR contains a shared branch with the arm64 tree
> containing the SME patches to resolve conflicts with the WFxT support
> branch.

Pulled, thanks.  I solved the conflict for KVM_EXIT_SYSTEM_EVENT values 
in your favor.

Paolo

> Please pull,
> 
> 	M.
> 
> The following changes since commit 672c0c5173427e6b3e2a9bbb7be51ceeec78093a:
> 
>    Linux 5.18-rc5 (2022-05-01 13:57:58 -0700)
> 
> are available in the Git repository at:
> 
>    git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm.git tags/kvmarm-5.19
> 
> for you to fetch changes up to 5c0ad551e9aa6188f2bda0977c1cb6768a2b74ef:
> 
>    Merge branch kvm-arm64/its-save-restore-fixes-5.19 into kvmarm-master/next (2022-05-16 17:48:36 +0100)
> 
> ----------------------------------------------------------------
> KVM/arm64 updates for 5.19
> 
> - Add support for the ARMv8.6 WFxT extension
> 
> - Guard pages for the EL2 stacks
> 
> - Trap and emulate AArch32 ID registers to hide unsupported features
> 
> - Ability to select and save/restore the set of hypercalls exposed
>    to the guest
> 
> - Support for PSCI-initiated suspend in collaboration with userspace
> 
> - GICv3 register-based LPI invalidation support
> 
> - Move host PMU event merging into the vcpu data structure
> 
> - GICv3 ITS save/restore fixes
> 
> - The usual set of small-scale cleanups and fixes
> 
> ----------------------------------------------------------------
> Alexandru Elisei (3):
>        KVM: arm64: Hide AArch32 PMU registers when not available
>        KVM: arm64: Don't BUG_ON() if emulated register table is unsorted
>        KVM: arm64: Print emulated register table name when it is unsorted
> 
> Ard Biesheuvel (1):
>        KVM: arm64: Avoid unnecessary absolute addressing via literals
> 
> Fuad Tabba (4):
>        KVM: arm64: Wrapper for getting pmu_events
>        KVM: arm64: Repack struct kvm_pmu to reduce size
>        KVM: arm64: Pass pmu events to hyp via vcpu
>        KVM: arm64: Reenable pmu in Protected Mode
> 
> Kalesh Singh (6):
>        KVM: arm64: Introduce hyp_alloc_private_va_range()
>        KVM: arm64: Introduce pkvm_alloc_private_va_range()
>        KVM: arm64: Add guard pages for KVM nVHE hypervisor stack
>        KVM: arm64: Add guard pages for pKVM (protected nVHE) hypervisor stack
>        KVM: arm64: Detect and handle hypervisor stack overflows
>        KVM: arm64: Symbolize the nVHE HYP addresses
> 
> Marc Zyngier (30):
>        arm64: Expand ESR_ELx_WFx_ISS_TI to match its ARMv8.7 definition
>        arm64: Add RV and RN fields for ESR_ELx_WFx_ISS
>        arm64: Add HWCAP advertising FEAT_WFXT
>        arm64: Add wfet()/wfit() helpers
>        arm64: Use WFxT for __delay() when possible
>        KVM: arm64: Simplify kvm_cpu_has_pending_timer()
>        KVM: arm64: Introduce kvm_counter_compute_delta() helper
>        KVM: arm64: Handle blocking WFIT instruction
>        KVM: arm64: Offer early resume for non-blocking WFxT instructions
>        KVM: arm64: Expose the WFXT feature to guests
>        KVM: arm64: Fix new instances of 32bit ESRs
>        Merge remote-tracking branch 'arm64/for-next/sme' into kvmarm-master/next
>        Merge branch kvm-arm64/wfxt into kvmarm-master/next
>        Merge branch kvm-arm64/hyp-stack-guard into kvmarm-master/next
>        Merge branch kvm-arm64/aarch32-idreg-trap into kvmarm-master/next
>        Documentation: Fix index.rst after psci.rst renaming
>        irqchip/gic-v3: Exposes bit values for GICR_CTLR.{IR, CES}
>        KVM: arm64: vgic-v3: Expose GICR_CTLR.RWP when disabling LPIs
>        KVM: arm64: vgic-v3: Implement MMIO-based LPI invalidation
>        KVM: arm64: vgic-v3: Advertise GICR_CTLR.{IR, CES} as a new GICD_IIDR revision
>        KVM: arm64: vgic-v3: List M1 Pro/Max as requiring the SEIS workaround
>        KVM: arm64: Hide KVM_REG_ARM_*_BMAP_BIT_COUNT from userspace
>        KVM: arm64: pmu: Restore compilation when HW_PERF_EVENTS isn't selected
>        KVM: arm64: Fix hypercall bitmap writeback when vcpus have already run
>        Merge branch kvm-arm64/hcall-selection into kvmarm-master/next
>        Merge branch kvm-arm64/psci-suspend into kvmarm-master/next
>        Merge branch kvm-arm64/vgic-invlpir into kvmarm-master/next
>        Merge branch kvm-arm64/per-vcpu-host-pmu-data into kvmarm-master/next
>        Merge branch kvm-arm64/misc-5.19 into kvmarm-master/next
>        Merge branch kvm-arm64/its-save-restore-fixes-5.19 into kvmarm-master/next
> 
> Mark Brown (25):
>        arm64/sme: Provide ABI documentation for SME
>        arm64/sme: System register and exception syndrome definitions
>        arm64/sme: Manually encode SME instructions
>        arm64/sme: Early CPU setup for SME
>        arm64/sme: Basic enumeration support
>        arm64/sme: Identify supported SME vector lengths at boot
>        arm64/sme: Implement sysctl to set the default vector length
>        arm64/sme: Implement vector length configuration prctl()s
>        arm64/sme: Implement support for TPIDR2
>        arm64/sme: Implement SVCR context switching
>        arm64/sme: Implement streaming SVE context switching
>        arm64/sme: Implement ZA context switching
>        arm64/sme: Implement traps and syscall handling for SME
>        arm64/sme: Disable ZA and streaming mode when handling signals
>        arm64/sme: Implement streaming SVE signal handling
>        arm64/sme: Implement ZA signal handling
>        arm64/sme: Implement ptrace support for streaming mode SVE registers
>        arm64/sme: Add ptrace support for ZA
>        arm64/sme: Disable streaming mode and ZA when flushing CPU state
>        arm64/sme: Save and restore streaming mode over EFI runtime calls
>        KVM: arm64: Hide SME system registers from guests
>        KVM: arm64: Trap SME usage in guest
>        KVM: arm64: Handle SME host state when running guests
>        arm64/sme: Provide Kconfig for SME
>        arm64/sme: Add ID_AA64SMFR0_EL1 to __read_sysreg_by_encoding()
> 
> Oliver Upton (21):
>        KVM: arm64: Return a bool from emulate_cp()
>        KVM: arm64: Don't write to Rt unless sys_reg emulation succeeds
>        KVM: arm64: Wire up CP15 feature registers to their AArch64 equivalents
>        KVM: arm64: Plumb cp10 ID traps through the AArch64 sysreg handler
>        KVM: arm64: Start trapping ID registers for 32 bit guests
>        selftests: KVM: Rename psci_cpu_on_test to psci_test
>        selftests: KVM: Create helper for making SMCCC calls
>        KVM: arm64: Don't depend on fallthrough to hide SYSTEM_RESET2
>        KVM: arm64: Dedupe vCPU power off helpers
>        KVM: arm64: Track vCPU power state using MP state values
>        KVM: arm64: Rename the KVM_REQ_SLEEP handler
>        KVM: arm64: Return a value from check_vcpu_requests()
>        KVM: arm64: Add support for userspace to suspend a vCPU
>        KVM: arm64: Implement PSCI SYSTEM_SUSPEND
>        selftests: KVM: Rename psci_cpu_on_test to psci_test
>        selftests: KVM: Create helper for making SMCCC calls
>        selftests: KVM: Use KVM_SET_MP_STATE to power off vCPU in psci_test
>        selftests: KVM: Refactor psci_test to make it amenable to new tests
>        selftests: KVM: Test SYSTEM_SUSPEND PSCI call
>        KVM: arm64: pkvm: Drop unnecessary FP/SIMD trap handler
>        KVM: arm64: pkvm: Don't mask already zeroed FEAT_SVE
> 
> Raghavendra Rao Ananta (9):
>        KVM: arm64: Factor out firmware register handling from psci.c
>        KVM: arm64: Setup a framework for hypercall bitmap firmware registers
>        KVM: arm64: Add standard hypervisor firmware register
>        KVM: arm64: Add vendor hypervisor firmware register
>        Docs: KVM: Rename psci.rst to hypercalls.rst
>        Docs: KVM: Add doc for the bitmap firmware registers
>        tools: Import ARM SMCCC definitions
>        selftests: KVM: aarch64: Introduce hypercall ABI test
>        selftests: KVM: aarch64: Add the bitmap firmware registers to get-reg-list
> 
> Randy Dunlap (1):
>        KVM: arm64: nvhe: Eliminate kernel-doc warnings
> 
> Ricardo Koller (4):
>        KVM: arm64: vgic: Check that new ITEs could be saved in guest memory
>        KVM: arm64: vgic: Add more checks when restoring ITS tables
>        KVM: arm64: vgic: Do not ignore vgic_its_restore_cte failures
>        KVM: arm64: vgic: Undo work in failed ITS restores
> 
> Stephen Rothwell (1):
>        Documentation: KVM: Fix title level for PSCI_SUSPEND
> 
> Wan Jiabing (1):
>        arm64/sme: Fix NULL check after kzalloc
> 
>   Documentation/arm64/cpu-feature-registers.rst      |   2 +
>   Documentation/arm64/elf_hwcaps.rst                 |  37 ++
>   Documentation/arm64/index.rst                      |   1 +
>   Documentation/arm64/sme.rst                        | 428 +++++++++++++++
>   Documentation/arm64/sve.rst                        |  70 ++-
>   Documentation/virt/kvm/api.rst                     |  94 +++-
>   Documentation/virt/kvm/arm/hypercalls.rst          | 138 +++++
>   Documentation/virt/kvm/arm/index.rst               |   2 +-
>   Documentation/virt/kvm/arm/psci.rst                |  77 ---
>   arch/arm64/Kconfig                                 |  11 +
>   arch/arm64/include/asm/barrier.h                   |   4 +
>   arch/arm64/include/asm/cpu.h                       |   4 +
>   arch/arm64/include/asm/cpufeature.h                |  24 +
>   arch/arm64/include/asm/cputype.h                   |   8 +
>   arch/arm64/include/asm/el2_setup.h                 |  64 ++-
>   arch/arm64/include/asm/esr.h                       |  21 +-
>   arch/arm64/include/asm/exception.h                 |   1 +
>   arch/arm64/include/asm/fpsimd.h                    | 123 ++++-
>   arch/arm64/include/asm/fpsimdmacros.h              |  87 +++
>   arch/arm64/include/asm/hwcap.h                     |   9 +
>   arch/arm64/include/asm/kvm_arm.h                   |   4 +-
>   arch/arm64/include/asm/kvm_asm.h                   |   1 +
>   arch/arm64/include/asm/kvm_emulate.h               |   7 -
>   arch/arm64/include/asm/kvm_host.h                  |  45 +-
>   arch/arm64/include/asm/kvm_mmu.h                   |   3 +
>   arch/arm64/include/asm/processor.h                 |  26 +-
>   arch/arm64/include/asm/sysreg.h                    |  67 +++
>   arch/arm64/include/asm/thread_info.h               |   2 +
>   arch/arm64/include/uapi/asm/hwcap.h                |   9 +
>   arch/arm64/include/uapi/asm/kvm.h                  |  34 ++
>   arch/arm64/include/uapi/asm/ptrace.h               |  69 ++-
>   arch/arm64/include/uapi/asm/sigcontext.h           |  55 +-
>   arch/arm64/kernel/cpufeature.c                     | 120 +++++
>   arch/arm64/kernel/cpuinfo.c                        |  14 +
>   arch/arm64/kernel/entry-common.c                   |  11 +
>   arch/arm64/kernel/entry-fpsimd.S                   |  36 ++
>   arch/arm64/kernel/fpsimd.c                         | 585 +++++++++++++++++++--
>   arch/arm64/kernel/process.c                        |  44 +-
>   arch/arm64/kernel/ptrace.c                         | 358 +++++++++++--
>   arch/arm64/kernel/signal.c                         | 188 ++++++-
>   arch/arm64/kernel/syscall.c                        |  29 +-
>   arch/arm64/kernel/traps.c                          |   1 +
>   arch/arm64/kvm/Makefile                            |   4 +-
>   arch/arm64/kvm/arch_timer.c                        |  47 +-
>   arch/arm64/kvm/arm.c                               | 158 +++++-
>   arch/arm64/kvm/fpsimd.c                            |  43 +-
>   arch/arm64/kvm/guest.c                             |  10 +-
>   arch/arm64/kvm/handle_exit.c                       |  49 +-
>   arch/arm64/kvm/hyp/include/nvhe/mm.h               |   6 +-
>   arch/arm64/kvm/hyp/nvhe/host.S                     |  32 +-
>   arch/arm64/kvm/hyp/nvhe/hyp-main.c                 |  18 +-
>   arch/arm64/kvm/hyp/nvhe/mm.c                       |  78 ++-
>   arch/arm64/kvm/hyp/nvhe/setup.c                    |  31 +-
>   arch/arm64/kvm/hyp/nvhe/switch.c                   |  87 +--
>   arch/arm64/kvm/hyp/nvhe/sys_regs.c                 |   3 -
>   arch/arm64/kvm/hyp/vhe/switch.c                    |  11 +-
>   arch/arm64/kvm/hypercalls.c                        | 327 +++++++++++-
>   arch/arm64/kvm/mmu.c                               |  68 ++-
>   arch/arm64/kvm/pmu-emul.c                          |   3 +-
>   arch/arm64/kvm/pmu.c                               |  40 +-
>   arch/arm64/kvm/psci.c                              | 248 ++-------
>   arch/arm64/kvm/sys_regs.c                          | 305 ++++++++---
>   arch/arm64/kvm/sys_regs.h                          |   9 +-
>   arch/arm64/kvm/vgic/vgic-init.c                    |   7 +-
>   arch/arm64/kvm/vgic/vgic-its.c                     | 160 ++++--
>   arch/arm64/kvm/vgic/vgic-mmio-v2.c                 |  18 +-
>   arch/arm64/kvm/vgic/vgic-mmio-v3.c                 | 125 ++++-
>   arch/arm64/kvm/vgic/vgic-v3.c                      |   4 +
>   arch/arm64/kvm/vgic/vgic.h                         |  10 +
>   arch/arm64/lib/delay.c                             |  12 +-
>   arch/arm64/tools/cpucaps                           |   3 +
>   include/kvm/arm_arch_timer.h                       |   2 -
>   include/kvm/arm_hypercalls.h                       |   8 +
>   include/kvm/arm_pmu.h                              |  34 +-
>   include/kvm/arm_psci.h                             |   7 -
>   include/kvm/arm_vgic.h                             |   8 +-
>   include/linux/irqchip/arm-gic-v3.h                 |   2 +
>   include/uapi/linux/elf.h                           |   2 +
>   include/uapi/linux/kvm.h                           |   4 +
>   include/uapi/linux/prctl.h                         |   9 +
>   kernel/sys.c                                       |  12 +
>   scripts/kallsyms.c                                 |   3 +-
>   tools/include/linux/arm-smccc.h                    | 193 +++++++
>   tools/testing/selftests/kvm/.gitignore             |   3 +-
>   tools/testing/selftests/kvm/Makefile               |   3 +-
>   tools/testing/selftests/kvm/aarch64/get-reg-list.c |   8 +
>   tools/testing/selftests/kvm/aarch64/hypercalls.c   | 336 ++++++++++++
>   .../selftests/kvm/aarch64/psci_cpu_on_test.c       | 121 -----
>   tools/testing/selftests/kvm/aarch64/psci_test.c    | 213 ++++++++
>   .../selftests/kvm/include/aarch64/processor.h      |  22 +
>   .../testing/selftests/kvm/lib/aarch64/processor.c  |  25 +
>   tools/testing/selftests/kvm/steal_time.c           |  13 +-
>   92 files changed, 4949 insertions(+), 908 deletions(-)
>   create mode 100644 Documentation/arm64/sme.rst
>   create mode 100644 Documentation/virt/kvm/arm/hypercalls.rst
>   delete mode 100644 Documentation/virt/kvm/arm/psci.rst
>   create mode 100644 tools/include/linux/arm-smccc.h
>   create mode 100644 tools/testing/selftests/kvm/aarch64/hypercalls.c
>   delete mode 100644 tools/testing/selftests/kvm/aarch64/psci_cpu_on_test.c
>   create mode 100644 tools/testing/selftests/kvm/aarch64/psci_test.c
> 


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2022-05-20 11:57 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-19  9:27 [GIT PULL] KVM/arm64 updates for 5.19 Marc Zyngier
2022-05-19  9:27 ` Marc Zyngier
2022-05-19  9:27 ` Marc Zyngier
2022-05-20 11:55 ` Paolo Bonzini
2022-05-20 11:55   ` Paolo Bonzini
2022-05-20 11:55   ` Paolo Bonzini

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.