Kernel KVM virtualization development
 help / color / mirror / Atom feed
From: Sean Christopherson <seanjc@google.com>
To: Takahiro Itazuri <itazur@amazon.com>
Cc: kvm@vger.kernel.org, Paolo Bonzini <pbonzini@redhat.com>,
	 Vitaly Kuznetsov <vkuznets@redhat.com>,
	Fuad Tabba <tabba@google.com>,
	 Brendan Jackman <jackmanb@google.com>,
	David Hildenbrand <david@kernel.org>,
	 David Woodhouse <dwmw2@infradead.org>,
	Paul Durrant <pdurrant@amazon.com>,
	 Nikita Kalyazin <nikita.kalyazin@linux.dev>,
	Patrick Roy <patrick.roy@campus.lmu.de>,
	 Patrick Roy <patrick.roy@linux.dev>,
	Derek Manwaring <derekmn@amazon.com>,
	 Alina Cernea <acernea@amazon.com>,
	Michael Zoumboulakis <zoumboul@amazon.com>,
	 Takahiro Itazuri <zulinx86@gmail.com>
Subject: Re: [RFC PATCH v4 0/7] KVM: pfncache: Add guest_memfd support to pfncache
Date: Tue, 12 May 2026 15:12:50 -0700	[thread overview]
Message-ID: <agOl4nYSFn49saRo@google.com> (raw)
In-Reply-To: <20260420154720.29012-1-itazur@amazon.com>

On Mon, Apr 20, 2026, Takahiro Itazuri wrote:
> [ based on 6.18 with [1] ]
> 
> This patch series adds guest_memfd support to gfn_to_pfn_cache (a.k.a.
> pfncache).  (This is still labelled RFC since its dependency [1] has not
> yet been merged.)
> 
> === Problem Statement ===
> 
> pfncache does not work with guest_memfd.  pfncaches resolve PFNs via
> hva_to_pfn(), which requires a userspace mapping and relies on GUP.
> This does not work for guest_memfd in the following two ways:
> 
>   * guest_memfd created without MMAP flag does not have a userspace
>     mapping due to the nature of private memory.

Sorry, but NAK.  At least until we have a *very* clear and generally agreed-upon
plan for how KVM is going to handle accessing guest memory NO_DIRECT_MAP (my brain
finally caught up to what this series wants to do).

Simply allowing gpcs to tap directly into guest_memfd doesn't allow KVM x86 to
use guest_memfd for non-CoCo VMs.  There might be a special class of VMs that can
squeak by, but any VM that finds itself in __kvm_{read,write}_guest_page() or in
FNAME(walk_addr_generic) needs to have guest memory mapped into host userspace.
Predicting what memory a "normal" VM will use for TDP or the source/destination
of emulated MMIO is simply not feasible.

At that point, the "guest_memfd created without MMAP flag" use case is meaningless,
because creating such a guest_memfd instance is *only* useful for backing PRIVATE
memory, which KVM obviously shouldn't be mapping.

This topic was discussed heavily at LPC 2024 (and/or LPC 2023?), and the consensus
was that mapping guest_memfd into host userspace is the least awful choice, the
only complete alternative being a *massive* rework of KVM x86 internals (other
architectures don't suffer as much due to limited emulation).

>   KVM: Rename invalidate_begin to invalidate_start for consistencyo

I'll grab this one for 7.2.

>   KVM: pfncache: Rename invalidate_start() helper
>   KVM: pfncache: Invalidate on gmem invalidation and memattr updates
>   KVM: selftests: Test pfncache with gmem-backed memory
>   KVM: selftests: Test pfncache invalidation for gmem-backed memory

      parent reply	other threads:[~2026-05-12 22:12 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-20 15:46 [RFC PATCH v4 0/7] KVM: pfncache: Add guest_memfd support to pfncache Takahiro Itazuri
2026-04-20 15:46 ` [RFC PATCH v4 1/7] KVM: pfncache: Resolve PFNs via kvm_gmem_get_pfn() for gmem-backed GPAs Takahiro Itazuri
2026-04-20 15:46 ` [RFC PATCH v4 2/7] KVM: pfncache: Obtain KHVA via vmap() for gmem with NO_DIRECT_MAP Takahiro Itazuri
2026-04-20 15:46 ` [RFC PATCH v4 3/7] KVM: Rename invalidate_begin to invalidate_start for consistency Takahiro Itazuri
2026-04-20 15:46 ` [RFC PATCH v4 4/7] KVM: pfncache: Rename invalidate_start() helper Takahiro Itazuri
2026-05-01 21:38   ` Ackerley Tng
2026-05-12 22:14     ` Sean Christopherson
2026-04-20 15:46 ` [RFC PATCH v4 5/7] KVM: pfncache: Invalidate on gmem invalidation and memattr updates Takahiro Itazuri
2026-05-01 21:43   ` Ackerley Tng
2026-04-20 15:46 ` [RFC PATCH v4 6/7] KVM: selftests: Test pfncache with gmem-backed memory Takahiro Itazuri
2026-05-01 21:16   ` Ackerley Tng
2026-04-20 15:46 ` [RFC PATCH v4 7/7] KVM: selftests: Test pfncache invalidation for " Takahiro Itazuri
2026-05-12 22:12 ` Sean Christopherson [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=agOl4nYSFn49saRo@google.com \
    --to=seanjc@google.com \
    --cc=acernea@amazon.com \
    --cc=david@kernel.org \
    --cc=derekmn@amazon.com \
    --cc=dwmw2@infradead.org \
    --cc=itazur@amazon.com \
    --cc=jackmanb@google.com \
    --cc=kvm@vger.kernel.org \
    --cc=nikita.kalyazin@linux.dev \
    --cc=patrick.roy@campus.lmu.de \
    --cc=patrick.roy@linux.dev \
    --cc=pbonzini@redhat.com \
    --cc=pdurrant@amazon.com \
    --cc=tabba@google.com \
    --cc=vkuznets@redhat.com \
    --cc=zoumboul@amazon.com \
    --cc=zulinx86@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox