From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org,
Sean Christopherson <seanjc@google.com>
Subject: [GIT PULL] KVM: guest_memfd and x86 CoCo changes for 7.3
Date: Wed, 12 Aug 2026 14:31:57 -0700 [thread overview]
Message-ID: <20260812213206.1564354-3-seanjc@google.com> (raw)
In-Reply-To: <20260812213206.1564354-1-seanjc@google.com>
Fix the SNP VMSA PUNCH_HOLE bug, and prepare guest_memfd for in-place
conversion. Regarding in-place conversion, my goal is to get it applied very
soon after 7.3-rc1, and then get you a pull request by -rc3 or -rc4. I think
we're past the functional issues phase and fully into bikeshedding, so fingers
crossed.
The following changes since commit a204badd8432f93b7e862e7dac6db0fe3d65f370:
Merge branch 'kvm-chainsaw' into HEAD (2026-06-25 11:32:09 +0200)
are available in the Git repository at:
https://github.com/kvm-x86/linux.git tags/kvm-x86-coco-7.3
for you to fetch changes up to 2abcdf03fda1380bcbe00417b9ce2b4afb30899b:
KVM: guest_memfd: Make private exactly what can be mapped on page fault (2026-07-27 09:43:44 -0700)
----------------------------------------------------------------
KVM guest_memfd and x86 CoCo changes for 7.3
- Forcefully invalidate SNP VMSA pages if their backing guest_memfd page is
zapped/invalidated, e.g. due to a PUNCH_HOLE in response to a Page-State
Change request.
- Rework the so called "prepare" and "invalidate" guest_memfd hooks to prepare
for in-place private<=>shared conversion, and clean up a few warts along the
way.
----------------------------------------------------------------
Ackerley Tng (1):
KVM: guest_memfd: Only "prepare" folios for private pages
Sean Christopherson (20):
KVM: SEV: Track the GPA of the guest-controlled VMSA used for SNP guests
KVM: SEV: Extract loading of guest-provided VMSA to a separate helper
KVM: SEV: Mark vCPU RUNNABLE after AP_CREATE, even if VMSA is unusable
KVM: SEV: Wire up kvm_x86_ops.gmem_xxx() if and only if CONFIG_KVM_AMD_SEV=y
KVM: x86: Serialize writes to disabled_quirks using kvm->lock
KVM: x86: Ensure runtime reads of disabled_quirks are resolved once
KVM: x86/mmu: Fold kvm_mmu_zap_memslot() into kvm_arch_flush_shadow_memslot()
KVM: x86/mmu: Split kvm_mmu_zap_all_fast() into "front" and "back" halves
KVM: x86/mmu: Use split "zap all fast" helpers when invalidating memslot
KVM: SEV: Forcefully invalidate SNP VMSA if its backing gmem page is zapped
KVM: SEV: Mark vCPU has having guest-provided VMSA even if its invalid
KVM: x86: Guard .gmem_prepare() declarations with HAVE_KVM_GMEM_PREPARE=y
KVM: guest_memfd: Pass the number of pages instead of the end pfn into .invalidate()
KVM: guest_memfd: Rename invalidate() arch hook to reclaim() and isolate it
KVM: x86: Rename kvm_x86_ops' gmem_invalidate() to gmem_make_shared()
KVM: guest_memfd: Drop the redundant printk on arch gmem_prepare() failure
KVM: guest_memfd: Add helpers to query SHARED vs. PRIVATE for a given page
KVM: guest_memfd: Rename prepare() hook and Kconfig to make_private() / CONVERT
KVM: guest_memfd: Explicitly pass number of pages to make_private() hook
KVM: guest_memfd: Make private exactly what can be mapped on page fault
arch/x86/include/asm/kvm-x86-ops.h | 12 ++-
arch/x86/include/asm/kvm_host.h | 15 ++-
arch/x86/kvm/Kconfig | 3 +-
arch/x86/kvm/mmu/mmu.c | 74 ++++++++------
arch/x86/kvm/svm/sev.c | 197 +++++++++++++++++++++++++------------
arch/x86/kvm/svm/svm.c | 10 +-
arch/x86/kvm/svm/svm.h | 19 ++--
arch/x86/kvm/x86.c | 25 +++--
arch/x86/kvm/x86.h | 2 +-
include/linux/kvm_host.h | 11 ++-
virt/kvm/Kconfig | 6 +-
virt/kvm/guest_memfd.c | 72 ++++----------
12 files changed, 269 insertions(+), 177 deletions(-)
next prev parent reply other threads:[~2026-08-12 21:32 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-12 21:31 [GIT PULL] KVM: x86 pull requests for 7.3 Sean Christopherson
2026-08-12 21:31 ` [GIT PULL] KVM: x86: Xen clock/timekeeping changes " Sean Christopherson
2026-08-12 21:31 ` Sean Christopherson [this message]
2026-08-12 21:31 ` [GIT PULL] KVM: Generic and documentation updates " Sean Christopherson
2026-08-18 11:15 ` Paolo Bonzini
2026-08-12 21:31 ` [GIT PULL] KVM: MAINTAINERS " Sean Christopherson
2026-08-18 11:10 ` Paolo Bonzini
2026-08-12 21:32 ` [GIT PULL] KVM: x86: Misc changes " Sean Christopherson
2026-08-18 11:42 ` Paolo Bonzini
2026-08-12 21:32 ` [GIT PULL] KVM: x86: MMU " Sean Christopherson
2026-08-12 21:32 ` [GIT PULL] KVM: Selftests change for 7.3, part 1 Sean Christopherson
2026-08-18 11:17 ` Paolo Bonzini
2026-08-12 21:32 ` [GIT PULL] KVM: x86: KVM: Selftests change for 7.3, part 2 Sean Christopherson
2026-08-18 11:25 ` Paolo Bonzini
2026-08-12 21:32 ` [GIT PULL] KVM: x86: SVM changes for 7.3 Sean Christopherson
2026-08-18 11:41 ` Paolo Bonzini
2026-08-12 21:32 ` [GIT PULL] KVM: x86: VMX " Sean Christopherson
2026-08-14 19:25 ` [GIT PULL] KVM: x86 pull requests " David Woodhouse
2026-08-15 7:55 ` Paolo Bonzini
2026-08-15 10:29 ` David Woodhouse
2026-08-17 14:40 ` Sean Christopherson
2026-08-18 12:29 ` Paolo Bonzini
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=20260812213206.1564354-3-seanjc@google.com \
--to=seanjc@google.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=pbonzini@redhat.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.