* [GIT PULL] KVM/arm64 updates for 6.18
@ 2025-09-25 18:26 Marc Zyngier
2025-09-30 17:12 ` Paolo Bonzini
0 siblings, 1 reply; 2+ messages in thread
From: Marc Zyngier @ 2025-09-25 18:26 UTC (permalink / raw)
To: Paolo Bonzini
Cc: Alexandru Elisei, Anshuman Khandual, Ayrton Munoz, Ben Horgan,
Fuad Tabba, Itaru Kitayama, James Clark, Jinqian Yang, Joey Gouly,
Keir Fraser, Kunwu Chan, Leo Yan, Li RongQing, Mark Brown,
Mark Rutland, Mostafa Saleh, Oliver Upton, Per Larsen,
Quentin Perret, Ryan Roberts, Sascha Bischoff, Sebastian Ene,
Steven Price, Suzuki K Poulose, Thomas Gleixner,
Vincent Donnefort, Wei-Lin Chang, Will Deacon, Yingchao Deng,
Zenghui Yu, kvmarm, linux-arm-kernel, kvm
Paolo,
Here's the initial set of updates for 6.18.
As expected, we have a bunch of NV follow-ups, fixing a number of
issues and working around some architectural misfeatures. Of note is
the addition of a basic framework to run our EL1 tests at EL2 in a
more or less transparent way. On the pKVM side, the only new thing is
the FF-A 1.2 support, which I'm sure will change the world as we know
it </sarcasm>.
As usual, a whole lot of more or less interesting fixes, details in
the tag below.
Please pull,
M.
The following changes since commit b320789d6883cc00ac78ce83bccbfe7ed58afcf0:
Linux 6.17-rc4 (2025-08-31 15:33:07 -0700)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm.git tags/kvmarm-6.18
for you to fetch changes up to 10fd0285305d0b48e8a3bf15d4f17fc4f3d68cb6:
Merge branch kvm-arm64/selftests-6.18 into kvmarm-master/next (2025-09-24 19:35:50 +0100)
----------------------------------------------------------------
KVM/arm64 updates for 6.18
- Add support for FF-A 1.2 as the secure memory conduit for pKVM,
allowing more registers to be used as part of the message payload.
- Change the way pKVM allocates its VM handles, making sure that the
privileged hypervisor is never tricked into using uninitialised
data.
- Speed up MMIO range registration by avoiding unnecessary RCU
synchronisation, which results in VMs starting much quicker.
- Add the dump of the instruction stream when panic-ing in the EL2
payload, just like the rest of the kernel has always done. This will
hopefully help debugging non-VHE setups.
- Add 52bit PA support to the stage-1 page-table walker, and make use
of it to populate the fault level reported to the guest on failing
to translate a stage-1 walk.
- Add NV support to the GICv3-on-GICv5 emulation code, ensuring
feature parity for guests, irrespective of the host platform.
- Fix some really ugly architecture problems when dealing with debug
in a nested VM. This has some bad performance impacts, but is at
least correct.
- Add enough infrastructure to be able to disable EL2 features and
give effective values to the EL2 control registers. This then allows
a bunch of features to be turned off, which helps cross-host
migration.
- Large rework of the selftest infrastructure to allow most tests to
transparently run at EL2. This is the first step towards enabling
NV testing.
- Various fixes and improvements all over the map, including one BE
fix, just in time for the removal of the feature.
----------------------------------------------------------------
Alexandru Elisei (1):
KVM: arm64: Update stale comment for sanitise_mte_tags()
Ben Horgan (1):
KVM: arm64: Fix debug checking for np-guests using huge mappings
Fuad Tabba (10):
KVM: arm64: Add build-time check for duplicate DECLARE_REG use
KVM: arm64: Rename pkvm.enabled to pkvm.is_protected
KVM: arm64: Rename 'host_kvm' to 'kvm' in pKVM host code
KVM: arm64: Clarify comments to distinguish pKVM mode from protected VMs
KVM: arm64: Decouple hyp VM creation state from its handle
KVM: arm64: Separate allocation and insertion of pKVM VM table entries
KVM: arm64: Consolidate pKVM hypervisor VM initialization logic
KVM: arm64: Introduce separate hypercalls for pKVM VM reservation and initialization
KVM: arm64: Reserve pKVM handle during pkvm_init_host_vm()
KVM: arm64: Fix page leak in user_mem_abort()
James Clark (1):
KVM: arm64: Add trap configs for PMSDSFR_EL1
Jinqian Yang (2):
KVM: arm64: Make ID_AA64MMFR1_EL1.{HCX, TWED} writable from userspace
KVM: arm64: selftests: Test writes to ID_AA64MMFR1_EL1.{HCX, TWED}
Keir Fraser (4):
KVM: arm64: vgic-init: Remove vgic_ready() macro
KVM: arm64: vgic: Explicitly implement vgic_dist::ready ordering
KVM: Implement barriers before accessing kvm->buses[] on SRCU read paths
KVM: Avoid synchronize_srcu() in kvm_io_bus_register_dev()
Marc Zyngier (39):
Merge branch kvm-arm64/ffa-1.2 into kvmarm-master/next
Merge branch kvm-arm64/pkvm_vm_handle into kvmarm-master/next
KVM: arm64: Fix kvm_vcpu_{set,is}_be() to deal with EL2 state
Merge branch kvm-arm64/mmio-rcu into kvmarm-master/next
Merge branch kvm-arm64/dump-instr into kvmarm-master/next
KVM: arm64: Don't access ICC_SRE_EL2 if GICv3 doesn't support v2 compatibility
KVM: arm64: Remove duplicate FEAT_{SYSREG128,MTE2} descriptions
KVM: arm64: Add reg_feat_map_desc to describe full register dependency
KVM: arm64: Enforce absence of FEAT_FGT on FGT registers
KVM: arm64: Enforce absence of FEAT_FGT2 on FGT2 registers
KVM: arm64: Enforce absence of FEAT_HCX on HCRX_EL2
KVM: arm64: Convert HCR_EL2 RES0 handling to compute_reg_res0_bits()
KVM: arm64: Enforce absence of FEAT_SCTLR2 on SCTLR2_EL{1,2}
KVM: arm64: Enforce absence of FEAT_TCR2 on TCR2_EL2
KVM: arm64: Convert SCTLR_EL1 RES0 handling to compute_reg_res0_bits()
KVM: arm64: Convert MDCR_EL2 RES0 handling to compute_reg_res0_bits()
KVM: arm64: Add helper computing the state of 52bit PA support
KVM: arm64: Account for 52bit when computing maximum OA
KVM: arm64: Compute 52bit TTBR address and alignment
KVM: arm64: Decouple output address from the PT descriptor
KVM: arm64: Pass the walk_info structure to compute_par_s1()
KVM: arm64: Compute shareability for LPA2
KVM: arm64: Populate PAR_EL1 with 52bit addresses
KVM: arm64: Expand valid block mappings to FEAT_LPA/LPA2 support
KVM: arm64: Report faults from S1 walk setup at the expected start level
KVM: arm64: Allow use of S1 PTW for non-NV vcpus
KVM: arm64: Allow EL1 control registers to be accessed from the CPU state
KVM: arm64: Don't switch MMU on translation from non-NV context
KVM: arm64: Add filtering hook to S1 page table walk
KVM: arm64: Add S1 IPA to page table level walker
KVM: arm64: Populate level on S1PTW SEA injection
KVM: arm64: selftest: Expand external_aborts test to look for TTW levels
Merge branch kvm-arm64/52bit-at into kvmarm-master/next
Merge branch kvm-arm64/gic-v5-nv into kvmarm-master/next
Merge branch kvm-arm64/nv-debug into kvmarm-master/next
Merge branch kvm-arm64/el2-feature-control into kvmarm-master/next
Merge branch kvm-arm64/nv-misc-6.18 into kvmarm-master/next
Merge branch kvm-arm64/misc-6.18 into kvmarm-master/next
Merge branch kvm-arm64/selftests-6.18 into kvmarm-master/next
Mark Brown (3):
KVM: arm64: Expose FEAT_LSFE to guests
KVM: arm64: selftests: Remove a duplicate register listing in set_id_regs
KVM: arm64: selftests: Cover ID_AA64ISAR3_EL1 in set_id_regs
Mostafa Saleh (2):
KVM: arm64: Dump instruction on hyp panic
KVM: arm64: Map hyp text as RO and dump instr on panic
Oliver Upton (29):
KVM: arm64: nv: Trap debug registers when in hyp context
KVM: arm64: nv: Apply guest's MDCR traps in nested context
KVM: arm64: nv: Treat AMO as 1 when at EL2 and {E2H,TGE} = {1, 0}
KVM: arm64: nv: Allow userspace to de-feature stage-2 TGRANs
KVM: arm64: nv: Convert masks to denylists in limit_nv_id_reg()
KVM: arm64: nv: Don't erroneously claim FEAT_DoubleLock for NV VMs
KVM: arm64: nv: Expose FEAT_DF2 to NV-enabled VMs
KVM: arm64: nv: Expose FEAT_RASv1p1 via RAS_frac
KVM: arm64: nv: Expose FEAT_ECBHB to NV-enabled VMs
KVM: arm64: nv: Expose FEAT_AFP to NV-enabled VMs
KVM: arm64: nv: Exclude guest's TWED configuration when TWE isn't set
KVM: arm64: nv: Expose FEAT_TWED to NV-enabled VMs
KVM: arm64: nv: Advertise FEAT_SpecSEI to NV-enabled VMs
KVM: arm64: nv: Advertise FEAT_TIDCP1 to NV-enabled VMs
KVM: arm64: nv: Expose up to FEAT_Debugv8p8 to NV-enabled VMs
KVM: arm64: selftests: Provide kvm_arch_vm_post_create() in library code
KVM: arm64: selftests: Initialize VGICv3 only once
KVM: arm64: selftests: Add helper to check for VGICv3 support
KVM: arm64: selftests: Add unsanitised helpers for VGICv3 creation
KVM: arm64: selftests: Create a VGICv3 for 'default' VMs
KVM: arm64: selftests: Alias EL1 registers to EL2 counterparts
KVM: arm64: selftests: Provide helper for getting default vCPU target
KVM: arm64: selftests: Select SMCCC conduit based on current EL
KVM: arm64: selftests: Use hyp timer IRQs when test runs at EL2
KVM: arm64: selftests: Use the vCPU attr for setting nr of PMU counters
KVM: arm64: selftests: Initialize HCR_EL2
KVM: arm64: selftests: Enable EL2 by default
KVM: arm64: selftests: Add basic test for running in VHE EL2
KVM: arm64: selftests: Cope with arch silliness in EL2 selftest
Per Larsen (6):
KVM: arm64: Correct return value on host version downgrade attempt
KVM: arm64: Use SMCCC 1.2 for FF-A initialization and in host handler
KVM: arm64: Mark FFA_NOTIFICATION_* calls as unsupported
KVM: arm64: Mark optional FF-A 1.2 interfaces as unsupported
KVM: arm64: Mask response to FFA_FEATURE call
KVM: arm64: Bump the supported version of FF-A to 1.2
Sascha Bischoff (4):
KVM: arm64: Enable nested for GICv5 host with FEAT_GCIE_LEGACY
arm64: cpucaps: Add GICv5 Legacy vCPU interface (GCIE_LEGACY) capability
KVM: arm64: Use ARM64_HAS_GICV5_LEGACY for GICv5 probing
irqchip/gic-v5: Drop has_gcie_v3_compat from gic_kvm_info
Wei-Lin Chang (1):
KVM: arm64: ptdump: Don't test PTE_VALID alongside other attributes
Yingchao Deng (1):
KVM: arm64: Return early from trace helpers when KVM isn't available
arch/arm64/include/asm/kvm_asm.h | 2 +
arch/arm64/include/asm/kvm_emulate.h | 34 +-
arch/arm64/include/asm/kvm_host.h | 5 +-
arch/arm64/include/asm/kvm_nested.h | 27 +-
arch/arm64/include/asm/kvm_pkvm.h | 1 +
arch/arm64/include/asm/traps.h | 1 +
arch/arm64/include/asm/vncr_mapping.h | 2 +
arch/arm64/kernel/cpufeature.c | 15 +
arch/arm64/kernel/image-vars.h | 3 +
arch/arm64/kernel/traps.c | 15 +-
arch/arm64/kvm/arm.c | 19 +-
arch/arm64/kvm/at.c | 376 +++++++++++++++------
arch/arm64/kvm/config.c | 358 +++++++++++++-------
arch/arm64/kvm/debug.c | 25 +-
arch/arm64/kvm/emulate-nested.c | 1 +
arch/arm64/kvm/handle_exit.c | 3 +
arch/arm64/kvm/hyp/include/nvhe/pkvm.h | 4 +-
arch/arm64/kvm/hyp/include/nvhe/trap_handler.h | 3 +-
arch/arm64/kvm/hyp/nvhe/Makefile | 1 +
arch/arm64/kvm/hyp/nvhe/ffa.c | 217 ++++++++----
arch/arm64/kvm/hyp/nvhe/hyp-main.c | 14 +
arch/arm64/kvm/hyp/nvhe/mem_protect.c | 9 +-
arch/arm64/kvm/hyp/nvhe/pkvm.c | 177 +++++++---
arch/arm64/kvm/hyp/nvhe/setup.c | 12 +-
arch/arm64/kvm/hyp/vgic-v3-sr.c | 25 +-
arch/arm64/kvm/hyp/vhe/switch.c | 7 +
arch/arm64/kvm/inject_fault.c | 27 +-
arch/arm64/kvm/mmu.c | 16 +-
arch/arm64/kvm/nested.c | 80 ++++-
arch/arm64/kvm/pkvm.c | 76 +++--
arch/arm64/kvm/ptdump.c | 20 +-
arch/arm64/kvm/sys_regs.c | 55 ++-
arch/arm64/kvm/vgic/vgic-init.c | 14 +-
arch/arm64/kvm/vgic/vgic-v3.c | 8 +
arch/arm64/kvm/vgic/vgic-v5.c | 2 +-
arch/arm64/tools/cpucaps | 1 +
arch/x86/kvm/vmx/vmx.c | 7 +
drivers/irqchip/irq-gic-v5.c | 7 -
include/kvm/arm_vgic.h | 2 +-
include/linux/arm_ffa.h | 1 +
include/linux/irqchip/arm-vgic-info.h | 2 -
include/linux/kvm_host.h | 11 +-
tools/testing/selftests/kvm/Makefile.kvm | 1 +
tools/testing/selftests/kvm/arm64/arch_timer.c | 13 +-
.../selftests/kvm/arm64/arch_timer_edge_cases.c | 13 +-
.../testing/selftests/kvm/arm64/external_aborts.c | 42 +++
tools/testing/selftests/kvm/arm64/hello_el2.c | 71 ++++
tools/testing/selftests/kvm/arm64/hypercalls.c | 2 +-
tools/testing/selftests/kvm/arm64/kvm-uuid.c | 2 +-
tools/testing/selftests/kvm/arm64/no-vgic-v3.c | 2 +
tools/testing/selftests/kvm/arm64/psci_test.c | 13 +-
tools/testing/selftests/kvm/arm64/set_id_regs.c | 44 +--
tools/testing/selftests/kvm/arm64/smccc_filter.c | 17 +-
tools/testing/selftests/kvm/arm64/vgic_init.c | 2 +
tools/testing/selftests/kvm/arm64/vgic_irq.c | 4 +-
.../testing/selftests/kvm/arm64/vgic_lpi_stress.c | 8 +-
.../selftests/kvm/arm64/vpmu_counter_access.c | 75 ++--
tools/testing/selftests/kvm/dirty_log_perf_test.c | 35 --
tools/testing/selftests/kvm/dirty_log_test.c | 1 +
tools/testing/selftests/kvm/get-reg-list.c | 9 +-
.../selftests/kvm/include/arm64/arch_timer.h | 24 ++
.../selftests/kvm/include/arm64/kvm_util_arch.h | 5 +-
.../selftests/kvm/include/arm64/processor.h | 74 ++++
tools/testing/selftests/kvm/include/arm64/vgic.h | 3 +
tools/testing/selftests/kvm/include/kvm_util.h | 7 +-
tools/testing/selftests/kvm/lib/arm64/processor.c | 104 +++++-
tools/testing/selftests/kvm/lib/arm64/vgic.c | 64 ++--
tools/testing/selftests/kvm/lib/kvm_util.c | 15 +-
tools/testing/selftests/kvm/lib/x86/processor.c | 2 +-
tools/testing/selftests/kvm/s390/cmma_test.c | 2 +-
tools/testing/selftests/kvm/steal_time.c | 2 +-
virt/kvm/kvm_main.c | 43 ++-
72 files changed, 1696 insertions(+), 688 deletions(-)
create mode 100644 tools/testing/selftests/kvm/arm64/hello_el2.c
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [GIT PULL] KVM/arm64 updates for 6.18
2025-09-25 18:26 [GIT PULL] KVM/arm64 updates for 6.18 Marc Zyngier
@ 2025-09-30 17:12 ` Paolo Bonzini
0 siblings, 0 replies; 2+ messages in thread
From: Paolo Bonzini @ 2025-09-30 17:12 UTC (permalink / raw)
To: Marc Zyngier
Cc: Alexandru Elisei, Anshuman Khandual, Ayrton Munoz, Ben Horgan,
Fuad Tabba, Itaru Kitayama, James Clark, Jinqian Yang, Joey Gouly,
Keir Fraser, Kunwu Chan, Leo Yan, Li RongQing, Mark Brown,
Mark Rutland, Mostafa Saleh, Oliver Upton, Per Larsen,
Quentin Perret, Ryan Roberts, Sascha Bischoff, Sebastian Ene,
Steven Price, Suzuki K Poulose, Thomas Gleixner,
Vincent Donnefort, Wei-Lin Chang, Will Deacon, Yingchao Deng,
Zenghui Yu, kvmarm, linux-arm-kernel, kvm
On Thu, Sep 25, 2025 at 8:26 PM Marc Zyngier <maz@kernel.org> wrote:
>
> Paolo,
>
> Here's the initial set of updates for 6.18.
>
> As expected, we have a bunch of NV follow-ups, fixing a number of
> issues and working around some architectural misfeatures. Of note is
> the addition of a basic framework to run our EL1 tests at EL2 in a
> more or less transparent way. On the pKVM side, the only new thing is
> the FF-A 1.2 support, which I'm sure will change the world as we know
> it </sarcasm>.
>
> As usual, a whole lot of more or less interesting fixes, details in
> the tag below.
>
> Please pull,
Can't complain about more self tests! Pulled, thanks - sorry for the delay.
Paolo
> M.
>
> The following changes since commit b320789d6883cc00ac78ce83bccbfe7ed58afcf0:
>
> Linux 6.17-rc4 (2025-08-31 15:33:07 -0700)
>
> are available in the Git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm.git tags/kvmarm-6.18
>
> for you to fetch changes up to 10fd0285305d0b48e8a3bf15d4f17fc4f3d68cb6:
>
> Merge branch kvm-arm64/selftests-6.18 into kvmarm-master/next (2025-09-24 19:35:50 +0100)
>
> ----------------------------------------------------------------
> KVM/arm64 updates for 6.18
>
> - Add support for FF-A 1.2 as the secure memory conduit for pKVM,
> allowing more registers to be used as part of the message payload.
>
> - Change the way pKVM allocates its VM handles, making sure that the
> privileged hypervisor is never tricked into using uninitialised
> data.
>
> - Speed up MMIO range registration by avoiding unnecessary RCU
> synchronisation, which results in VMs starting much quicker.
>
> - Add the dump of the instruction stream when panic-ing in the EL2
> payload, just like the rest of the kernel has always done. This will
> hopefully help debugging non-VHE setups.
>
> - Add 52bit PA support to the stage-1 page-table walker, and make use
> of it to populate the fault level reported to the guest on failing
> to translate a stage-1 walk.
>
> - Add NV support to the GICv3-on-GICv5 emulation code, ensuring
> feature parity for guests, irrespective of the host platform.
>
> - Fix some really ugly architecture problems when dealing with debug
> in a nested VM. This has some bad performance impacts, but is at
> least correct.
>
> - Add enough infrastructure to be able to disable EL2 features and
> give effective values to the EL2 control registers. This then allows
> a bunch of features to be turned off, which helps cross-host
> migration.
>
> - Large rework of the selftest infrastructure to allow most tests to
> transparently run at EL2. This is the first step towards enabling
> NV testing.
>
> - Various fixes and improvements all over the map, including one BE
> fix, just in time for the removal of the feature.
>
> ----------------------------------------------------------------
> Alexandru Elisei (1):
> KVM: arm64: Update stale comment for sanitise_mte_tags()
>
> Ben Horgan (1):
> KVM: arm64: Fix debug checking for np-guests using huge mappings
>
> Fuad Tabba (10):
> KVM: arm64: Add build-time check for duplicate DECLARE_REG use
> KVM: arm64: Rename pkvm.enabled to pkvm.is_protected
> KVM: arm64: Rename 'host_kvm' to 'kvm' in pKVM host code
> KVM: arm64: Clarify comments to distinguish pKVM mode from protected VMs
> KVM: arm64: Decouple hyp VM creation state from its handle
> KVM: arm64: Separate allocation and insertion of pKVM VM table entries
> KVM: arm64: Consolidate pKVM hypervisor VM initialization logic
> KVM: arm64: Introduce separate hypercalls for pKVM VM reservation and initialization
> KVM: arm64: Reserve pKVM handle during pkvm_init_host_vm()
> KVM: arm64: Fix page leak in user_mem_abort()
>
> James Clark (1):
> KVM: arm64: Add trap configs for PMSDSFR_EL1
>
> Jinqian Yang (2):
> KVM: arm64: Make ID_AA64MMFR1_EL1.{HCX, TWED} writable from userspace
> KVM: arm64: selftests: Test writes to ID_AA64MMFR1_EL1.{HCX, TWED}
>
> Keir Fraser (4):
> KVM: arm64: vgic-init: Remove vgic_ready() macro
> KVM: arm64: vgic: Explicitly implement vgic_dist::ready ordering
> KVM: Implement barriers before accessing kvm->buses[] on SRCU read paths
> KVM: Avoid synchronize_srcu() in kvm_io_bus_register_dev()
>
> Marc Zyngier (39):
> Merge branch kvm-arm64/ffa-1.2 into kvmarm-master/next
> Merge branch kvm-arm64/pkvm_vm_handle into kvmarm-master/next
> KVM: arm64: Fix kvm_vcpu_{set,is}_be() to deal with EL2 state
> Merge branch kvm-arm64/mmio-rcu into kvmarm-master/next
> Merge branch kvm-arm64/dump-instr into kvmarm-master/next
> KVM: arm64: Don't access ICC_SRE_EL2 if GICv3 doesn't support v2 compatibility
> KVM: arm64: Remove duplicate FEAT_{SYSREG128,MTE2} descriptions
> KVM: arm64: Add reg_feat_map_desc to describe full register dependency
> KVM: arm64: Enforce absence of FEAT_FGT on FGT registers
> KVM: arm64: Enforce absence of FEAT_FGT2 on FGT2 registers
> KVM: arm64: Enforce absence of FEAT_HCX on HCRX_EL2
> KVM: arm64: Convert HCR_EL2 RES0 handling to compute_reg_res0_bits()
> KVM: arm64: Enforce absence of FEAT_SCTLR2 on SCTLR2_EL{1,2}
> KVM: arm64: Enforce absence of FEAT_TCR2 on TCR2_EL2
> KVM: arm64: Convert SCTLR_EL1 RES0 handling to compute_reg_res0_bits()
> KVM: arm64: Convert MDCR_EL2 RES0 handling to compute_reg_res0_bits()
> KVM: arm64: Add helper computing the state of 52bit PA support
> KVM: arm64: Account for 52bit when computing maximum OA
> KVM: arm64: Compute 52bit TTBR address and alignment
> KVM: arm64: Decouple output address from the PT descriptor
> KVM: arm64: Pass the walk_info structure to compute_par_s1()
> KVM: arm64: Compute shareability for LPA2
> KVM: arm64: Populate PAR_EL1 with 52bit addresses
> KVM: arm64: Expand valid block mappings to FEAT_LPA/LPA2 support
> KVM: arm64: Report faults from S1 walk setup at the expected start level
> KVM: arm64: Allow use of S1 PTW for non-NV vcpus
> KVM: arm64: Allow EL1 control registers to be accessed from the CPU state
> KVM: arm64: Don't switch MMU on translation from non-NV context
> KVM: arm64: Add filtering hook to S1 page table walk
> KVM: arm64: Add S1 IPA to page table level walker
> KVM: arm64: Populate level on S1PTW SEA injection
> KVM: arm64: selftest: Expand external_aborts test to look for TTW levels
> Merge branch kvm-arm64/52bit-at into kvmarm-master/next
> Merge branch kvm-arm64/gic-v5-nv into kvmarm-master/next
> Merge branch kvm-arm64/nv-debug into kvmarm-master/next
> Merge branch kvm-arm64/el2-feature-control into kvmarm-master/next
> Merge branch kvm-arm64/nv-misc-6.18 into kvmarm-master/next
> Merge branch kvm-arm64/misc-6.18 into kvmarm-master/next
> Merge branch kvm-arm64/selftests-6.18 into kvmarm-master/next
>
> Mark Brown (3):
> KVM: arm64: Expose FEAT_LSFE to guests
> KVM: arm64: selftests: Remove a duplicate register listing in set_id_regs
> KVM: arm64: selftests: Cover ID_AA64ISAR3_EL1 in set_id_regs
>
> Mostafa Saleh (2):
> KVM: arm64: Dump instruction on hyp panic
> KVM: arm64: Map hyp text as RO and dump instr on panic
>
> Oliver Upton (29):
> KVM: arm64: nv: Trap debug registers when in hyp context
> KVM: arm64: nv: Apply guest's MDCR traps in nested context
> KVM: arm64: nv: Treat AMO as 1 when at EL2 and {E2H,TGE} = {1, 0}
> KVM: arm64: nv: Allow userspace to de-feature stage-2 TGRANs
> KVM: arm64: nv: Convert masks to denylists in limit_nv_id_reg()
> KVM: arm64: nv: Don't erroneously claim FEAT_DoubleLock for NV VMs
> KVM: arm64: nv: Expose FEAT_DF2 to NV-enabled VMs
> KVM: arm64: nv: Expose FEAT_RASv1p1 via RAS_frac
> KVM: arm64: nv: Expose FEAT_ECBHB to NV-enabled VMs
> KVM: arm64: nv: Expose FEAT_AFP to NV-enabled VMs
> KVM: arm64: nv: Exclude guest's TWED configuration when TWE isn't set
> KVM: arm64: nv: Expose FEAT_TWED to NV-enabled VMs
> KVM: arm64: nv: Advertise FEAT_SpecSEI to NV-enabled VMs
> KVM: arm64: nv: Advertise FEAT_TIDCP1 to NV-enabled VMs
> KVM: arm64: nv: Expose up to FEAT_Debugv8p8 to NV-enabled VMs
> KVM: arm64: selftests: Provide kvm_arch_vm_post_create() in library code
> KVM: arm64: selftests: Initialize VGICv3 only once
> KVM: arm64: selftests: Add helper to check for VGICv3 support
> KVM: arm64: selftests: Add unsanitised helpers for VGICv3 creation
> KVM: arm64: selftests: Create a VGICv3 for 'default' VMs
> KVM: arm64: selftests: Alias EL1 registers to EL2 counterparts
> KVM: arm64: selftests: Provide helper for getting default vCPU target
> KVM: arm64: selftests: Select SMCCC conduit based on current EL
> KVM: arm64: selftests: Use hyp timer IRQs when test runs at EL2
> KVM: arm64: selftests: Use the vCPU attr for setting nr of PMU counters
> KVM: arm64: selftests: Initialize HCR_EL2
> KVM: arm64: selftests: Enable EL2 by default
> KVM: arm64: selftests: Add basic test for running in VHE EL2
> KVM: arm64: selftests: Cope with arch silliness in EL2 selftest
>
> Per Larsen (6):
> KVM: arm64: Correct return value on host version downgrade attempt
> KVM: arm64: Use SMCCC 1.2 for FF-A initialization and in host handler
> KVM: arm64: Mark FFA_NOTIFICATION_* calls as unsupported
> KVM: arm64: Mark optional FF-A 1.2 interfaces as unsupported
> KVM: arm64: Mask response to FFA_FEATURE call
> KVM: arm64: Bump the supported version of FF-A to 1.2
>
> Sascha Bischoff (4):
> KVM: arm64: Enable nested for GICv5 host with FEAT_GCIE_LEGACY
> arm64: cpucaps: Add GICv5 Legacy vCPU interface (GCIE_LEGACY) capability
> KVM: arm64: Use ARM64_HAS_GICV5_LEGACY for GICv5 probing
> irqchip/gic-v5: Drop has_gcie_v3_compat from gic_kvm_info
>
> Wei-Lin Chang (1):
> KVM: arm64: ptdump: Don't test PTE_VALID alongside other attributes
>
> Yingchao Deng (1):
> KVM: arm64: Return early from trace helpers when KVM isn't available
>
> arch/arm64/include/asm/kvm_asm.h | 2 +
> arch/arm64/include/asm/kvm_emulate.h | 34 +-
> arch/arm64/include/asm/kvm_host.h | 5 +-
> arch/arm64/include/asm/kvm_nested.h | 27 +-
> arch/arm64/include/asm/kvm_pkvm.h | 1 +
> arch/arm64/include/asm/traps.h | 1 +
> arch/arm64/include/asm/vncr_mapping.h | 2 +
> arch/arm64/kernel/cpufeature.c | 15 +
> arch/arm64/kernel/image-vars.h | 3 +
> arch/arm64/kernel/traps.c | 15 +-
> arch/arm64/kvm/arm.c | 19 +-
> arch/arm64/kvm/at.c | 376 +++++++++++++++------
> arch/arm64/kvm/config.c | 358 +++++++++++++-------
> arch/arm64/kvm/debug.c | 25 +-
> arch/arm64/kvm/emulate-nested.c | 1 +
> arch/arm64/kvm/handle_exit.c | 3 +
> arch/arm64/kvm/hyp/include/nvhe/pkvm.h | 4 +-
> arch/arm64/kvm/hyp/include/nvhe/trap_handler.h | 3 +-
> arch/arm64/kvm/hyp/nvhe/Makefile | 1 +
> arch/arm64/kvm/hyp/nvhe/ffa.c | 217 ++++++++----
> arch/arm64/kvm/hyp/nvhe/hyp-main.c | 14 +
> arch/arm64/kvm/hyp/nvhe/mem_protect.c | 9 +-
> arch/arm64/kvm/hyp/nvhe/pkvm.c | 177 +++++++---
> arch/arm64/kvm/hyp/nvhe/setup.c | 12 +-
> arch/arm64/kvm/hyp/vgic-v3-sr.c | 25 +-
> arch/arm64/kvm/hyp/vhe/switch.c | 7 +
> arch/arm64/kvm/inject_fault.c | 27 +-
> arch/arm64/kvm/mmu.c | 16 +-
> arch/arm64/kvm/nested.c | 80 ++++-
> arch/arm64/kvm/pkvm.c | 76 +++--
> arch/arm64/kvm/ptdump.c | 20 +-
> arch/arm64/kvm/sys_regs.c | 55 ++-
> arch/arm64/kvm/vgic/vgic-init.c | 14 +-
> arch/arm64/kvm/vgic/vgic-v3.c | 8 +
> arch/arm64/kvm/vgic/vgic-v5.c | 2 +-
> arch/arm64/tools/cpucaps | 1 +
> arch/x86/kvm/vmx/vmx.c | 7 +
> drivers/irqchip/irq-gic-v5.c | 7 -
> include/kvm/arm_vgic.h | 2 +-
> include/linux/arm_ffa.h | 1 +
> include/linux/irqchip/arm-vgic-info.h | 2 -
> include/linux/kvm_host.h | 11 +-
> tools/testing/selftests/kvm/Makefile.kvm | 1 +
> tools/testing/selftests/kvm/arm64/arch_timer.c | 13 +-
> .../selftests/kvm/arm64/arch_timer_edge_cases.c | 13 +-
> .../testing/selftests/kvm/arm64/external_aborts.c | 42 +++
> tools/testing/selftests/kvm/arm64/hello_el2.c | 71 ++++
> tools/testing/selftests/kvm/arm64/hypercalls.c | 2 +-
> tools/testing/selftests/kvm/arm64/kvm-uuid.c | 2 +-
> tools/testing/selftests/kvm/arm64/no-vgic-v3.c | 2 +
> tools/testing/selftests/kvm/arm64/psci_test.c | 13 +-
> tools/testing/selftests/kvm/arm64/set_id_regs.c | 44 +--
> tools/testing/selftests/kvm/arm64/smccc_filter.c | 17 +-
> tools/testing/selftests/kvm/arm64/vgic_init.c | 2 +
> tools/testing/selftests/kvm/arm64/vgic_irq.c | 4 +-
> .../testing/selftests/kvm/arm64/vgic_lpi_stress.c | 8 +-
> .../selftests/kvm/arm64/vpmu_counter_access.c | 75 ++--
> tools/testing/selftests/kvm/dirty_log_perf_test.c | 35 --
> tools/testing/selftests/kvm/dirty_log_test.c | 1 +
> tools/testing/selftests/kvm/get-reg-list.c | 9 +-
> .../selftests/kvm/include/arm64/arch_timer.h | 24 ++
> .../selftests/kvm/include/arm64/kvm_util_arch.h | 5 +-
> .../selftests/kvm/include/arm64/processor.h | 74 ++++
> tools/testing/selftests/kvm/include/arm64/vgic.h | 3 +
> tools/testing/selftests/kvm/include/kvm_util.h | 7 +-
> tools/testing/selftests/kvm/lib/arm64/processor.c | 104 +++++-
> tools/testing/selftests/kvm/lib/arm64/vgic.c | 64 ++--
> tools/testing/selftests/kvm/lib/kvm_util.c | 15 +-
> tools/testing/selftests/kvm/lib/x86/processor.c | 2 +-
> tools/testing/selftests/kvm/s390/cmma_test.c | 2 +-
> tools/testing/selftests/kvm/steal_time.c | 2 +-
> virt/kvm/kvm_main.c | 43 ++-
> 72 files changed, 1696 insertions(+), 688 deletions(-)
> create mode 100644 tools/testing/selftests/kvm/arm64/hello_el2.c
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2025-09-30 17:12 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-25 18:26 [GIT PULL] KVM/arm64 updates for 6.18 Marc Zyngier
2025-09-30 17:12 ` Paolo Bonzini
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox