Re: [PATCH v2 00/13] KVM: guest_memfd: MMAP and related fixes

Sean Christopherson
2025-10-10T21:30:45Z

On Fri, 03 Oct 2025 16:25:53 -0700, Sean Christopherson wrote:
> Fix several flaws in guest_memfd related to MMAP support, the big one being
> a lurking ABI mess due to MMAP implicitly inverting the initial private vs.
> shared state of a gmem instance.
>
> To solve that, add a guest_memfd flag, INIT_SHARED, to let userspace explicitly
> state whether the underlying memory should default to private vs. shared.
> As-is, the initial state is implicitly derived from the MMAP flag: guest_memfd
> without MMAP is private, and with MMAP is shared. That implicit behavior
> is going to create a mess of an ABI once in-place conversion support comes
> along.
>
> [...]

Applied to kvm-x86 fixes, I'll send a pull request early next week (I've had
these in -next all of this week, though the hashes will have changed due to
rewriting history to add trailers).

Thanks for the reviews!

[01/13] KVM: Rework KVM_CAP_GUEST_MEMFD_MMAP into KVM_CAP_GUEST_MEMFD_FLAGS
https://github.com/kvm-x86/linux/commit/d2042d8f96dd
[02/13] KVM: guest_memfd: Add INIT_SHARED flag, reject user page faults if not set
https://github.com/kvm-x86/linux/commit/fe2bf6234e94
[03/13] KVM: guest_memfd: Invalidate SHARED GPAs if gmem supports INIT_SHARED
https://github.com/kvm-x86/linux/commit/5d3341d684be
[04/13] KVM: Explicitly mark KVM_GUEST_MEMFD as depending on KVM_GENERIC_MMU_NOTIFIER
https://github.com/kvm-x86/linux/commit/9aef71c892a5
[05/13] KVM: guest_memfd: Allow mmap() on guest_memfd for x86 VMs with private memory
https://github.com/kvm-x86/linux/commit/44c6cb9fe988
[06/13] KVM: selftests: Stash the host page size in a global in the guest_memfd test
https://github.com/kvm-x86/linux/commit/3a6c08538c74
[07/13] KVM: selftests: Create a new guest_memfd for each testcase
https://github.com/kvm-x86/linux/commit/21d602ed616a
[08/13] KVM: selftests: Add test coverage for guest_memfd without GUEST_MEMFD_FLAG_MMAP
https://github.com/kvm-x86/linux/commit/df0d9923f705
[09/13] KVM: selftests: Add wrappers for mmap() and munmap() to assert success
https://github.com/kvm-x86/linux/commit/61cee97f4018
[10/13] KVM: selftests: Isolate the guest_memfd Copy-on-Write negative testcase
https://github.com/kvm-x86/linux/commit/505c953009ec
[11/13] KVM: selftests: Add wrapper macro to handle and assert on expected SIGBUS
https://github.com/kvm-x86/linux/commit/f91187c0ecc6
[12/13] KVM: selftests: Verify that faulting in private guest_memfd memory fails
https://github.com/kvm-x86/linux/commit/19942d4fd9cf
[13/13] KVM: selftests: Verify that reads to inaccessible guest_memfd VMAs SIGBUS
https://github.com/kvm-x86/linux/commit/505f5224b197

--