[RFC PATCH 0/3] KVM: Dirty page logging for guest_memfd-only memslots
David Hildenbrand
david.hildenbrand at arm.com
Thu Aug 13 13:01:33 PDT 2026
On 8/13/26 18:09, Alexandru Elisei wrote:
> Hi Sean, David,
Hi,
>
> On Mon, Jul 13, 2026 at 04:11:57PM +0200, David Hildenbrand wrote:
>>
>>>
>>> Yeah. I agree (with the caveats you mention). Arm folk need to go figure
>>> out if it's worthwhile to support with all those caveats.
>>
>> Right, disabling migration (once gmem supports it) was also what I discussed
>> with Alexandru when that topic comes up.
>>
>> How to communicate to gmem that it wants these fixed mappings is a good question.
>
> There's already a proposal for how to do this in the migratable guest_memfd
> series [1] - it's a new guest_memfd creation flag that disables migration.
>
In the guest_memfd call I was arguing against the flag in the first version, and
instead adding it when actually required.
I was also raising whether KVM couldn't tell guest_memfd (e.g., at creation
time?) that it supports a CPU feature that requires S2 to be always mapped to
disable migration.
It would then be a contract between KVM and guest_memfd without user space
having to be involved on that level.
> With Sean's comment that he expects swap/reclaim to be fully userspace
> driven, I believe that would be enough to guarantee on the _kernel_ side
> that SPE will work as intended for a guest.
That's my understanding.
>
> I'm a slightly concerned though that all of this will work by chance, and
> not by design, and in the future the behaviour might change to allow
> guest_memfd memory to be unmapped from stage 2 without the VMM or KVM
> explicitly allowing it or initiating it.
Thus my idea of the explicit contract between KVM and guest_memfd. Instead of
being a "this doesn't support migration" it would be a "S2 always mapped"
kind-of contract.
>
> My understanding from the conversation so far is that the plan for the
> future of guest_memfd is to support an option/mode where the memory is
> effectively "pinned" at stage 2 (but which allows userspace to explicitly
> free/unmap it, of course). Is that correct, or am I being overly optimistic
> in my interpretation?
We could then even disallow fallocate() to punch holes if that contract is
negotiated.
--
Cheers,
David
More information about the linux-arm-kernel
mailing list