Re: [PATCH v4 21/43] arm64: RME: Runtime faulting of memory
From: Steven Price <steven.price@arm.com>
Date: 2024-08-22 15:14:25
Also in:
kvm, kvmarm, linux-coco, lkml
From: Steven Price <steven.price@arm.com>
Date: 2024-08-22 15:14:25
Also in:
kvm, kvmarm, linux-coco, lkml
On 22/08/2024 04:32, Aneesh Kumar K.V wrote:
Steven Price [off-list ref] writes:quoted
At runtime if the realm guest accesses memory which hasn't yet been mapped then KVM needs to either populate the region or fault the guest. For memory in the lower (protected) region of IPA a fresh page is provided to the RMM which will zero the contents. For memory in the upper (shared) region of IPA, the memory from the memslot is mapped into the realm VM non secure. Signed-off-by: Steven Price <steven.price@arm.com> --- Changes since v2: * Avoid leaking memory if failing to map it in the realm. * Correctly mask RTT based on LPA2 flag (see rtt_get_phys()). * Adapt to changes in previous patches.....quoted
- gfn = ipa >> PAGE_SHIFT; + gfn = (ipa & ~gpa_stolen_mask) >> PAGE_SHIFT; memslot = gfn_to_memslot(vcpu->kvm, gfn); + + if (kvm_slot_can_be_private(memslot)) { + ret = private_memslot_fault(vcpu, fault_ipa, memslot); + if (ret != -EAGAIN) + goto out; + }Shouldn't this be s/fault_ipa/ipa ?
Well they should both be the same unless we're in some scary parallel universe where we have nested virtualisation *and* realms at the same time (shudder!). But yes "ipa" would be more consistent so I'll change it! Steve
ret = private_memslot_fault(vcpu, ipa, memslot); -aneesh