[PATCH v3 00/25] KVM: arm64: Introduce pKVM hyp VM and vCPU state at EL2

Vincent Donnefort vdonnefort at google.com
Thu Sep 29 05:47:22 PDT 2022


On Wed, Sep 14, 2022 at 09:34:35AM +0100, Will Deacon wrote:
> Hi folks,
> 
> This is v3 of the series previously posted here:
> 
>   Mega-series: https://lore.kernel.org/kvmarm/20220519134204.5379-1-will@kernel.org/
>   v2: https://lore.kernel.org/all/20220630135747.26983-1-will@kernel.org/
> 
> There have been some significant changes since v2, including:
> 
> - Removal of unnecessary backpointer linking a hyp vCPU to its hyp VM in
>   favour of container_of()
> 
> - Removing confusing use of 'shadow' at EL2 in favour of 'pkvm_hyp'
>   (although this was much more work than a simple sed expression!)
> 
> - Simplified vm table lookup and removal of redundant table traversal
> 
> - Rework of the hypervisor fixmap to avoid redundant page-table walks
> 
> - Splitting of memory donations required to create a guest so that the
>   requirement for physically-contiguous pages is reduced
> 
> - Fixed a memory leak when the stage-2 pgd is configured with an
>   unsupported size
> 
> - Dropped rework of 'struct hyp_page' as it is not required by this
>   series
> 
> - Improved commit messages
> 
> - Rebased onto v6.0-rc1
> 
> Oliver -- as discussed in person, I've left the owner ID enumeration
> where it is for now since we will need to track the guest *instance* in
> future and so consolidating this into the pgtable code is unlikely to be
> beneficial.
> 
> As with the previous posting, the last patch is marked as RFC because,
> although it plumbs in the shadow state, it is woefully inefficient and
> copies to/from the host state on every vCPU run. Without the last patch,
> the new structures are unused but we move considerably closer to
> isolating guests from the host.
> 
> Cheers,

Tested on silicon, especially that all the donations are recovered on VM
teardown.

Tested-by: Vincent Donnefort <vdonnefort at google.com>

[...]



More information about the linux-arm-kernel mailing list