[PATCH v4 00/18] KVM: arm64: nv: Add support for address translation instructions

Ganapatrao Kulkarni gankulkarni at os.amperecomputing.com
Tue Aug 20 21:25:37 PDT 2024


Hi Marc,

On 20-08-2024 04:07 pm, Marc Zyngier wrote:
> This is the fourth revision of the address translation emulation for
> NV support on arm64 previously posted at [1].
> 
> Thanks again to Alex for his continuous (contiguous? ;-) scrutiny on
> this series.
> 
> * From v3:
> 
>    - Fix out of range conditions for TxSZ when LVA is implemented
> 
>    - Fix implementation of R_VPBBF to deliver an Address Size Fault
> 
>    - Don't grant PX if UW is set
> 
>    - Various cleanups
> 
>    - Collected Alex's RBs, with thanks.
> 
> I've added the usual reviewers on Cc, plus people who explicitly asked
> to be on it, and people who seem to be super keen on NV.
> 
> Patches on top of 6.11-rc1, tested on my usual M2 (so VHE only). FWIW,
> I plan to take this into 6.12.
> 
> [1] https://lore.kernel.org/r/20240813100540.1955263-1-maz@kernel.org
> 
> Joey Gouly (1):
>    KVM: arm64: Make kvm_at() take an OP_AT_*
> 

Have you tested/tried NV with host/L0 booted with GICv4.x enabled?
We do see L2 boot hang and I don't have much debug info at the moment.

> Marc Zyngier (17):
>    arm64: Add missing APTable and TCR_ELx.HPD masks
>    arm64: Add PAR_EL1 field description
>    arm64: Add system register encoding for PSTATE.PAN
>    arm64: Add ESR_ELx_FSC_ADDRSZ_L() helper
>    KVM: arm64: nv: Enforce S2 alignment when contiguous bit is set
>    KVM: arm64: nv: Turn upper_attr for S2 walk into the full descriptor
>    KVM: arm64: nv: Honor absence of FEAT_PAN2
>    KVM: arm64: nv: Add basic emulation of AT S1E{0,1}{R,W}
>    KVM: arm64: nv: Add basic emulation of AT S1E1{R,W}P
>    KVM: arm64: nv: Add basic emulation of AT S1E2{R,W}
>    KVM: arm64: nv: Add emulation of AT S12E{0,1}{R,W}
>    KVM: arm64: nv: Make ps_to_output_size() generally available
>    KVM: arm64: nv: Add SW walker for AT S1 emulation
>    KVM: arm64: nv: Sanitise SCTLR_EL1.EPAN according to VM configuration
>    KVM: arm64: nv: Make AT+PAN instructions aware of FEAT_PAN3
>    KVM: arm64: nv: Plumb handling of AT S1* traps from EL2
>    KVM: arm64: nv: Add support for FEAT_ATS1A
> 
>   arch/arm64/include/asm/esr.h           |    5 +-
>   arch/arm64/include/asm/kvm_arm.h       |    1 +
>   arch/arm64/include/asm/kvm_asm.h       |    6 +-
>   arch/arm64/include/asm/kvm_nested.h    |   40 +-
>   arch/arm64/include/asm/pgtable-hwdef.h |    9 +
>   arch/arm64/include/asm/sysreg.h        |   22 +
>   arch/arm64/kvm/Makefile                |    2 +-
>   arch/arm64/kvm/at.c                    | 1101 ++++++++++++++++++++++++
>   arch/arm64/kvm/emulate-nested.c        |    2 +
>   arch/arm64/kvm/hyp/include/hyp/fault.h |    2 +-
>   arch/arm64/kvm/nested.c                |   41 +-
>   arch/arm64/kvm/sys_regs.c              |   60 ++
>   12 files changed, 1259 insertions(+), 32 deletions(-)
>   create mode 100644 arch/arm64/kvm/at.c
> 

-- 
Thanks,
Ganapat/GK



More information about the linux-arm-kernel mailing list