On Thu, 10 Nov 2022 19:02:33 +0000, Will Deacon wrote: > This is version six of the pKVM EL2 state series, extending the pKVM > hypervisor code so that it can dynamically instantiate and manage VM > data structures without the host being able to access them directly. > These structures consist of a hyp VM, a set of hyp vCPUs and the stage-2 > page-table for the MMU. The pages used to hold the hypervisor structures > are returned to the host when the VM is destroyed. > > [...] As for Oliver's series, I've tentatively applied this to -next. I've dropped Oliver's patch for now, but kept the RFC one. Maybe I'll change my mind. Anyway, there was an interesting number of conflicts between the two series, which I tried to resolve as well as I could, but it is likely I broke something (although it compiles, so it must be perfect). Please have a look and shout if/when you spot something. [01/26] KVM: arm64: Move hyp refcount manipulation helpers to common header file commit: 0f4f7ae10ee4e6403659b2d9ddf05424eecde45b [02/26] KVM: arm64: Allow attaching of non-coalescable pages to a hyp pool commit: 72a5bc0f153ce8ca80e9abbd1d9adec7d586915a [03/26] KVM: arm64: Back the hypervisor 'struct hyp_page' array for all memory commit: 8e6bcc3a4502a0d8d065466efd888b6b59b85789 [04/26] KVM: arm64: Fix-up hyp stage-1 refcounts for all pages mapped at EL2 commit: 0d16d12eb26ef85602ef8a678d94825a66772774 [05/26] KVM: arm64: Unify identifiers used to distinguish host and hypervisor commit: 33bc332d4061e95db55594893c4f80105b1dd813 [06/26] KVM: arm64: Implement do_donate() helper for donating memory commit: 1ed5c24c26f48ff61dc5d97c655769821f36a622 [07/26] KVM: arm64: Prevent the donation of no-map pages commit: 43c1ff8b75011bc3e3e923adf31ba815864a2494 [08/26] KVM: arm64: Add helpers to pin memory shared with the hypervisor at EL2 commit: 9926cfce8dcb880255f30ab9ac930add787e1ead [09/26] KVM: arm64: Include asm/kvm_mmu.h in nvhe/mem_protect.h commit: 4d968b12e6bbe4440f4f220c41d779e02df8af1a [10/26] KVM: arm64: Add hyp_spinlock_t static initializer commit: 1c80002e3264552d8b9c0e162e09aa4087403716 [11/26] KVM: arm64: Rename 'host_kvm' to 'host_mmu' commit: 5304002dc3754a5663d75c977bfa2d9e3c08906d [12/26] KVM: arm64: Add infrastructure to create and track pKVM instances at EL2 commit: a1ec5c70d3f63d8a143fb83cd7f53bd8ff2f72c8 [13/26] KVM: arm64: Instantiate pKVM hypervisor VM and vCPU structures from EL1 commit: 9d0c063a4d1d10ef8e6288899b8524413e40cfa0 [14/26] KVM: arm64: Add per-cpu fixmap infrastructure at EL2 commit: aa6948f82f0b7060fbbac21911dc7996b144ba3c [15/26] KVM: arm64: Initialise hypervisor copies of host symbols unconditionally commit: 6c165223e9a6384aa1e934b90f2650e71adb972a [16/26] KVM: arm64: Provide I-cache invalidation by virtual address at EL2 commit: 13e248aab73d2f1c27b458ef09d38b44f3e5bf2e [17/26] KVM: arm64: Add generic hyp_memcache helpers commit: 717a7eebac106a5cc5d5493f8eef9cf4ae6edf19 [18/26] KVM: arm64: Consolidate stage-2 initialisation into a single function commit: 315775ff7c6de497dd07c3f6eff499fb538783eb [19/26] KVM: arm64: Instantiate guest stage-2 page-tables at EL2 commit: 60dfe093ec13b056856c672e1daa35134be38283 [20/26] KVM: arm64: Return guest memory from EL2 via dedicated teardown memcache commit: f41dff4efb918db68923a826e966ca62c7c8e929 [21/26] KVM: arm64: Unmap 'kvm_arm_hyp_percpu_base' from the host commit: fe41a7f8c0ee3ee2f682f8c28c7e1c5ff2be8a79 [22/26] KVM: arm64: Maintain a copy of 'kvm_arm_vmid_bits' at EL2 commit: 73f38ef2ae531b180685173e0923225551434fcb [23/26] KVM: arm64: Explicitly map 'kvm_vgic_global_state' at EL2 commit: 27eb26bfff5d358d42911d04bbecc62e659ec32b [24/26] KVM: arm64: Don't unnecessarily map host kernel sections at EL2 commit: 169cd0f8238f2598b85d2db2e15828e8f8da18e5 [25/26] KVM: arm64: Clean out the odd handling of completer_addr (no commit info) [26/26] KVM: arm64: Use the pKVM hyp vCPU structure in handle___kvm_vcpu_run() commit: be66e67f175096f283c9d5614c4991fc9e7ed975 Cheers, M. -- Without deviation from the norm, progress is not possible.