Re: [GIT PULL] KVM/arm64 updates for 5.19

2022-05-20 Thread Paolo Bonzini

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: 

[GIT PULL] KVM/arm64 updates for 5.19

2022-05-19 Thread Marc Zyngier
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