[PATCH 0/6] Move pKVM ownership state to hyp_vmemmap

Marc Zyngier maz at kernel.org
Sun Mar 16 04:12:17 PDT 2025


On Thu, 27 Feb 2025 00:33:04 +0000,
Quentin Perret <qperret at google.com> wrote:
> 
> Hi all,
> 
> This series moves the hypervisor's ownership state to the hyp_vmemmap,
> as discussed in [1]. The two main benefits are:
> 
>  1. much cheaper hyp state lookups, since we can avoid the hyp stage-1
>     page-table walk;
> 
>  2. de-correlates the hyp state from the presence of a mapping in the
>     linear map range of the hypervisor; which enables a bunch of
>     clean-ups in the existing code and will simplify the introduction of
>     other features in the future (hyp tracing, ...)
> 
> Patch 01 is a self-sufficient cleanup that I found thanks to patch 05.
> Patches 02-04 implement the aforementioned migration of the hyp state
> to the vmemmap. Patches 05 and 06 are cleanups enabled by that
> migration.
> 
> Patches based on 6.14-rc4, tested on Qemu.
> 
> Thanks!
> Quentin
> 
> [1] https://lore.kernel.org/kvmarm/Z79ZJVOHtNu6YsVt@google.com/
> 
> Fuad Tabba (1):
>   KVM: arm64: Track SVE state in the hypervisor vcpu structure
> 
> Quentin Perret (5):
>   KVM: arm64: Use 0b11 for encoding PKVM_NOPAGE
>   KVM: arm64: Introduce {get,set}_host_state() helpers
>   KVM: arm64: Move hyp state to hyp_vmemmap
>   KVM: arm64: Defer EL2 stage-1 mapping on share
>   KVM: arm64: Unconditionally cross check hyp state
> 
>  arch/arm64/include/asm/kvm_host.h        |  12 +--
>  arch/arm64/kvm/hyp/include/nvhe/memory.h |  35 ++++++--
>  arch/arm64/kvm/hyp/nvhe/hyp-main.c       |   4 -
>  arch/arm64/kvm/hyp/nvhe/mem_protect.c    | 106 ++++++++++++-----------
>  arch/arm64/kvm/hyp/nvhe/pkvm.c           |  54 ++++++++++--
>  arch/arm64/kvm/hyp/nvhe/setup.c          |  10 ++-
>  6 files changed, 147 insertions(+), 74 deletions(-)
> 

Reviewed-by: Marc Zyngier <maz at kernel.org>

	M.

-- 
Without deviation from the norm, progress is not possible.



More information about the linux-arm-kernel mailing list