Re: [PATCH v3 10/32] KVM: arm64: Introduce an early Hyp page allocator

From: Will Deacon
Date: Thu Mar 04 2021 - 09:39:48 EST


On Tue, Mar 02, 2021 at 02:59:40PM +0000, Quentin Perret wrote:
> With nVHE, the host currently creates all stage 1 hypervisor mappings at
> EL1 during boot, installs them at EL2, and extends them as required
> (e.g. when creating a new VM). But in a world where the host is no
> longer trusted, it cannot have full control over the code mapped in the
> hypervisor.
>
> In preparation for enabling the hypervisor to create its own stage 1
> mappings during boot, introduce an early page allocator, with minimal
> functionality. This allocator is designed to be used only during early
> bootstrap of the hyp code when memory protection is enabled, which will
> then switch to using a full-fledged page allocator after init.
>
> Signed-off-by: Quentin Perret <qperret@xxxxxxxxxx>
> ---
> arch/arm64/kvm/hyp/include/nvhe/early_alloc.h | 14 +++++
> arch/arm64/kvm/hyp/include/nvhe/memory.h | 24 +++++++++
> arch/arm64/kvm/hyp/nvhe/Makefile | 2 +-
> arch/arm64/kvm/hyp/nvhe/early_alloc.c | 54 +++++++++++++++++++
> arch/arm64/kvm/hyp/nvhe/psci-relay.c | 4 +-
> 5 files changed, 94 insertions(+), 4 deletions(-)
> create mode 100644 arch/arm64/kvm/hyp/include/nvhe/early_alloc.h
> create mode 100644 arch/arm64/kvm/hyp/include/nvhe/memory.h
> create mode 100644 arch/arm64/kvm/hyp/nvhe/early_alloc.c

Acked-by: Will Deacon <will@xxxxxxxxxx>

Will