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@xxxxxxxxxx/ > v2: https://lore.kernel.org/all/20220630135747.26983-1-will@xxxxxxxxxx/ > > 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@xxxxxxxxxx> [...]