[PATCH v9 00/22] KVM: arm64: Fixed features for protected VMs

Fuad Tabba tabba at google.com
Mon Oct 18 02:51:54 PDT 2021


Hi Marc,

On Wed, Oct 13, 2021 at 1:04 PM Marc Zyngier <maz at kernel.org> wrote:
>
> This is an update on Fuad's series[1].
>
> Instead of going going back and forth over a series that has seen a
> fair few versions, I've opted for simply writing a set of fixes on
> top, hopefully greatly simplifying the handling of most registers, and
> moving things around to suit my own taste (just because I can).
>
> I won't be reposting the initial 11 patches, which is why this series
> in is reply to patch 11.

Thanks for this series. I've reviewed, built it, and tested it with a
dummy protected VM (since we don't have proper protected VMs yet),
which initializes some of the relevant protected VMs metadata as well
as its control registers. So fwiw:

Reviewed-by: Fuad Tabba <tabba at google.com>

And to whatever extent possible at this stage:
Tested-by: Fuad Tabba <tabba at google.com>

Cheers,
/fuad





> Thanks,
>
>         M.
>
> [1] https://lore.kernel.org/r/20211010145636.1950948-1-tabba@google.com
>
> Fuad Tabba (8):
>   KVM: arm64: Pass struct kvm to per-EC handlers
>   KVM: arm64: Add missing field descriptor for MDCR_EL2
>   KVM: arm64: Simplify masking out MTE in feature id reg
>   KVM: arm64: Add handlers for protected VM System Registers
>   KVM: arm64: Initialize trap registers for protected VMs
>   KVM: arm64: Move sanitized copies of CPU features
>   KVM: arm64: Trap access to pVM restricted features
>   KVM: arm64: Handle protected guests at 32 bits
>
> Marc Zyngier (14):
>   KVM: arm64: Move __get_fault_info() and co into their own include file
>   KVM: arm64: Don't include switch.h into nvhe/kvm-main.c
>   KVM: arm64: Move early handlers to per-EC handlers
>   KVM: arm64: Fix early exit ptrauth handling
>   KVM: arm64: pkvm: Use a single function to expose all id-regs
>   KVM: arm64: pkvm: Make the ERR/ERX*_EL1 registers RAZ/WI
>   KVM: arm64: pkvm: Drop AArch32-specific registers
>   KVM: arm64: pkvm: Drop sysregs that should never be routed to the host
>   KVM: arm64: pkvm: Handle GICv3 traps as required
>   KVM: arm64: pkvm: Preserve pending SError on exit from AArch32
>   KVM: arm64: pkvm: Consolidate include files
>   KVM: arm64: pkvm: Move kvm_handle_pvm_restricted around
>   KVM: arm64: pkvm: Pass vpcu instead of kvm to
>     kvm_get_exit_handler_array()
>   KVM: arm64: pkvm: Give priority to standard traps over pvm handling
>
>  arch/arm64/include/asm/kvm_arm.h              |   1 +
>  arch/arm64/include/asm/kvm_asm.h              |   1 +
>  arch/arm64/include/asm/kvm_host.h             |   2 +
>  arch/arm64/include/asm/kvm_hyp.h              |   5 +
>  arch/arm64/kvm/arm.c                          |  13 +
>  arch/arm64/kvm/hyp/include/hyp/fault.h        |  75 +++
>  arch/arm64/kvm/hyp/include/hyp/switch.h       | 235 ++++-----
>  .../arm64/kvm/hyp/include/nvhe/fixed_config.h | 200 +++++++
>  .../arm64/kvm/hyp/include/nvhe/trap_handler.h |   2 +
>  arch/arm64/kvm/hyp/nvhe/Makefile              |   2 +-
>  arch/arm64/kvm/hyp/nvhe/hyp-main.c            |  11 +-
>  arch/arm64/kvm/hyp/nvhe/mem_protect.c         |   8 +-
>  arch/arm64/kvm/hyp/nvhe/pkvm.c                | 185 +++++++
>  arch/arm64/kvm/hyp/nvhe/setup.c               |   3 +
>  arch/arm64/kvm/hyp/nvhe/switch.c              |  99 ++++
>  arch/arm64/kvm/hyp/nvhe/sys_regs.c            | 487 ++++++++++++++++++
>  arch/arm64/kvm/hyp/vhe/switch.c               |  16 +
>  arch/arm64/kvm/sys_regs.c                     |  10 +-
>  18 files changed, 1200 insertions(+), 155 deletions(-)
>  create mode 100644 arch/arm64/kvm/hyp/include/hyp/fault.h
>  create mode 100644 arch/arm64/kvm/hyp/include/nvhe/fixed_config.h
>  create mode 100644 arch/arm64/kvm/hyp/nvhe/pkvm.c
>  create mode 100644 arch/arm64/kvm/hyp/nvhe/sys_regs.c
>
> --
> 2.30.2
>



More information about the linux-arm-kernel mailing list