Kernel KVM virtualization development
 help / color / mirror / Atom feed
From: Sean Christopherson <seanjc@google.com>
To: Ackerley Tng <ackerleytng@google.com>
Cc: Xiaoyao Li <xiaoyao.li@intel.com>, Lisa Wang <wyihan@google.com>,
	 Binbin Wu <binbin.wu@linux.intel.com>,
	Chao Gao <chao.gao@intel.com>,
	 Chenyi Qiang <chenyi.qiang@intel.com>,
	Erdem Aktas <erdemaktas@google.com>,
	 Paolo Bonzini <pbonzini@redhat.com>,
	"Pratik R. Sampat" <pratikrajesh.sampat@amd.com>,
	 Rick Edgecombe <rick.p.edgecombe@intel.com>,
	Roger Wang <runanwang@google.com>,
	 Ryan Afranji <afranji@google.com>,
	Sagi Shahar <sagis@google.com>,
	kvm@vger.kernel.org,  linux-kernel@vger.kernel.org,
	Ashish Kalra <ashish.kalra@amd.com>,
	 Tom Lendacky <thomas.lendacky@amd.com>,
	Michael Roth <michael.roth@amd.com>
Subject: Re: [PATCH v14 13/22] KVM: selftests: Support guest_memfd in-place conversion
Date: Mon, 12 Oct 2026 13:13:51 -0700	[thread overview]
Message-ID: <as0_f5dTbCWuODwQ@google.com> (raw)
In-Reply-To: <CAEvNRgG3h5jgHOpHvJ_uuJv8o-mq0Jy9gXUhKcDZXfSGAfZBiA@mail.gmail.com>

On Mon, Oct 12, 2026, Ackerley Tng wrote:
> Sean Christopherson <seanjc@google.com> writes:
> > The alternative would be to take sev_cmd_mutex around the kvm_gmem_populate() call
> > in snp_launch_update(), but even if the CPP maintainers were willing to provide hooks
> 
> I realized you meant CCP/PSP instead of CPP :)
> 
> > to allow that, I'm not willing to take such a hack in KVM.
> >
> 
> Is this a hack because sev_cmd_mutex() would be held for a long time
> while the populate loop executes?

It would also bleed CCP internals into KVM, and in general doesn't pass a basic
"is this the right thing to do" test. 

> > So, very sadly, I think in-place conversion is dead for 7.4, and will need to be
> > revived on top of an overhaul of sev_cmd_mutex locking.
> >
> > Or I guess maybe a less painful temporary workaround would be to disable support
> > for SNP if in-place conversion is enabled.  That would avoid extending the in-place
> > conversion bottleneck for TDX, pKVM, and CCA, without having to take a gross hack
> > to make SNP play nice.
> >
> > E.g. this as a workaround for 7.4 (not yet tested)
> >
> > diff --git a/arch/x86/kvm/svm/sev.c b/arch/x86/kvm/svm/sev.c
> > index fad72cab76cf..df885b8214d4 100644
> > --- a/arch/x86/kvm/svm/sev.c
> > +++ b/arch/x86/kvm/svm/sev.c
> > @@ -3213,6 +3213,14 @@ void __init sev_hardware_setup(void)
> >  	sev_snp_supported = sev_snp_enabled && cc_platform_has(CC_ATTR_HOST_SEV_SNP);
> >
> >  out:
> > +	/*
> > +	 * FIXME: Allow SNP with in-place guest_memfd conversion once the PSP
> > +	 * driver no longer takes its global mutex outside of mmap_lock (which
> > +	 * leads to deadlock with sev_gmem_post_populate()).
> > +	 */
> > +	if (gmem_in_place_conversion)
> > +		sev_snp_supported = false;
> > +
> 
> If we go with something like this, when SNP and gmem_in_place_conversion
> starts to work together, would we need some kind of new CAP or other way
> to advertise that guest_memfd and SNP are now friends?

I don't think so?  KVM already enumerates support for SNP, so reverting the
block should tell userspace everything it needs.  We'd need to document that
enabling in-place conversion disables SNP support, but I think it's purely a
documentation problem.

  reply	other threads:[~2026-10-12 20:13 UTC|newest]

Thread overview: 106+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-22 23:13 [PATCH v14 00/22] TDX KVM selftests Lisa Wang
2026-07-22 23:13 ` [PATCH v14 01/22] KVM: selftests: Add macros to simplify creating VM shapes for non-default types Lisa Wang
2026-08-19  7:44   ` Peter Fang
2026-09-08 16:58   ` Ackerley Tng
2026-07-22 23:13 ` [PATCH v14 02/22] KVM: selftests: Update kvm_init_vm_address_properties() for TDX Lisa Wang
2026-08-13 23:17   ` Edgecombe, Rick P
2026-09-08 17:42     ` Ackerley Tng
2026-07-22 23:13 ` [PATCH v14 03/22] KVM: selftests: Initialize the TDX VM Lisa Wang
2026-07-23  8:44   ` Xiaoyao Li
2026-08-13 23:41     ` Edgecombe, Rick P
2026-08-15  9:17       ` Xiaoyao Li
2026-09-08  8:04     ` Lisa Wang
2026-09-08 18:08       ` Ackerley Tng
2026-09-09 10:00         ` Xiaoyao Li
2026-09-18  1:40           ` Lisa Wang
2026-08-13 23:41   ` Edgecombe, Rick P
2026-08-14 21:18     ` Peter Fang
2026-08-20  8:46   ` Peter Fang
2026-07-22 23:13 ` [PATCH v14 04/22] KVM: selftests: TDX: Use KVM_TDX_CAPABILITIES to validate TDs' attribute configuration Lisa Wang
2026-08-13 23:45   ` Edgecombe, Rick P
2026-09-08 19:06     ` Ackerley Tng
2026-07-22 23:13 ` [PATCH v14 05/22] KVM: selftests: Expose segment definitions to assembly files Lisa Wang
2026-08-13 23:50   ` Edgecombe, Rick P
2026-09-08 19:03   ` Ackerley Tng
2026-07-22 23:13 ` [PATCH v14 06/22] tools: include: Add kbuild.h for assembly structure offsets Lisa Wang
2026-09-08 19:01   ` Ackerley Tng
2026-07-22 23:13 ` [PATCH v14 07/22] KVM: selftests: Introduce structures for TDX guest boot parameters Lisa Wang
2026-07-22 23:13 ` [PATCH v14 08/22] KVM: selftests: Add TDX boot code Lisa Wang
2026-07-23 11:17   ` Xiaoyao Li
2026-08-21  5:16   ` Peter Fang
2026-07-22 23:13 ` [PATCH v14 09/22] KVM: selftests: Expose functions to get default sregs values Lisa Wang
2026-07-23 10:19   ` Xiaoyao Li
2026-08-14  0:44   ` Edgecombe, Rick P
2026-08-14  2:36     ` Xiaoyao Li
2026-08-14 15:14       ` Edgecombe, Rick P
2026-07-22 23:13 ` [PATCH v14 10/22] KVM: selftests: Set up TDX boot code region Lisa Wang
2026-07-23 10:24   ` Xiaoyao Li
2026-08-24 19:27   ` Peter Fang
2026-08-24 20:00     ` Sean Christopherson
2026-08-26  8:31       ` Peter Fang
2026-08-28 20:14       ` Lisa Wang
2026-07-22 23:13 ` [PATCH v14 11/22] KVM: selftests: Set up TDX boot parameters region Lisa Wang
2026-07-23 10:34   ` Xiaoyao Li
2026-08-11  6:32   ` Binbin Wu
2026-08-25  8:14   ` Peter Fang
2026-09-08 19:18     ` Ackerley Tng
2026-09-17  9:12       ` Peter Fang
2026-07-22 23:13 ` [PATCH v14 12/22] KVM: selftests: Require guest_memfd for TDX VMs Lisa Wang
2026-08-11  7:43   ` Binbin Wu
2026-08-14  7:42   ` Xiaoyao Li
2026-09-25 22:04     ` Lisa Wang
2026-07-22 23:13 ` [PATCH v14 13/22] KVM: selftests: Support guest_memfd in-place conversion Lisa Wang
2026-08-18  8:17   ` Xiaoyao Li
2026-10-12 15:26     ` Sean Christopherson
2026-10-12 16:06       ` Sean Christopherson
2026-10-12 19:53         ` Michael Roth
2026-10-12 20:09           ` Sean Christopherson
2026-10-12 20:15             ` Michael Roth
2026-10-12 19:55         ` Ackerley Tng
2026-10-12 20:13           ` Sean Christopherson [this message]
2026-08-25 21:53   ` Peter Fang
2026-07-22 23:13 ` [PATCH v14 14/22] KVM: selftests: Expose function to allocate vCPU stack Lisa Wang
2026-08-14  8:10   ` Xiaoyao Li
2026-07-22 23:13 ` [PATCH v14 15/22] KVM: selftests: Call KVM_TDX_INIT_VCPU when creating a new TDX vcpu Lisa Wang
2026-08-14  8:32   ` Xiaoyao Li
2026-08-18  8:58     ` Binbin Wu
2026-08-26 21:22     ` Peter Fang
2026-07-22 23:13 ` [PATCH v14 16/22] KVM: selftests: Load per-vCPU guest stack in TDX boot parameters Lisa Wang
2026-08-14  8:39   ` Xiaoyao Li
2026-08-26 22:17   ` Peter Fang
2026-07-22 23:13 ` [PATCH v14 17/22] KVM: selftests: Set entry point for TDX guest code Lisa Wang
2026-08-14  8:43   ` Xiaoyao Li
2026-08-18  9:04   ` Binbin Wu
2026-07-22 23:13 ` [PATCH v14 18/22] KVM: selftests: Add helpers to init TDX memory and finalize VM Lisa Wang
2026-08-17  6:47   ` Xiaoyao Li
2026-08-17 13:52     ` Ackerley Tng
2026-08-18  7:33       ` Xiaoyao Li
2026-09-08 23:12         ` Ackerley Tng
2026-07-22 23:13 ` [PATCH v14 19/22] KVM: selftests: Finalize TD memory as part of kvm_arch_vm_finalize_vcpus Lisa Wang
2026-08-17  7:04   ` Xiaoyao Li
2026-09-08 23:24     ` Ackerley Tng
2026-09-17  9:16       ` Peter Fang
2026-08-27  7:51   ` Peter Fang
2026-07-22 23:13 ` [PATCH v14 20/22] KVM: selftests: Implement MMIO WRITE for the TDX VM Lisa Wang
2026-07-28 22:56   ` Ackerley Tng
2026-08-17  8:56   ` Xiaoyao Li
2026-08-27  9:19   ` Peter Fang
2026-07-22 23:13 ` [PATCH v14 21/22] KVM: selftests: Add ucall support for TDX Lisa Wang
2026-08-17  8:38   ` Xiaoyao Li
2026-08-28  2:06     ` Peter Fang
2026-08-28  2:31       ` Xiaoyao Li
2026-08-28  4:20         ` Peter Fang
2026-08-28 14:18           ` Sean Christopherson
2026-08-31 22:10             ` Peter Fang
2026-09-09 10:59             ` Xiaoyao Li
2026-07-22 23:13 ` [PATCH v14 22/22] KVM: selftests: Add TDX lifecycle test Lisa Wang
2026-08-17  9:04   ` Xiaoyao Li
2026-08-28  4:33   ` Peter Fang
2026-08-13 22:47 ` [PATCH v14 00/22] TDX KVM selftests Edgecombe, Rick P
2026-08-13 23:05   ` Edgecombe, Rick P
2026-08-17  4:19     ` Ackerley Tng
2026-08-17 17:54       ` Edgecombe, Rick P
2026-10-08 21:16         ` Edgecombe, Rick P
2026-10-10  1:28           ` Xiaoyao Li
2026-10-12 15:51             ` Edgecombe, Rick P
2026-08-28 18:30     ` Lisa Wang

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=as0_f5dTbCWuODwQ@google.com \
    --to=seanjc@google.com \
    --cc=ackerleytng@google.com \
    --cc=afranji@google.com \
    --cc=ashish.kalra@amd.com \
    --cc=binbin.wu@linux.intel.com \
    --cc=chao.gao@intel.com \
    --cc=chenyi.qiang@intel.com \
    --cc=erdemaktas@google.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=michael.roth@amd.com \
    --cc=pbonzini@redhat.com \
    --cc=pratikrajesh.sampat@amd.com \
    --cc=rick.p.edgecombe@intel.com \
    --cc=runanwang@google.com \
    --cc=sagis@google.com \
    --cc=thomas.lendacky@amd.com \
    --cc=wyihan@google.com \
    --cc=xiaoyao.li@intel.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