All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sean Christopherson <seanjc@google.com>
To: Yan Zhao <yan.y.zhao@intel.com>
Cc: Marc Zyngier <maz@kernel.org>,
	Oliver Upton <oliver.upton@linux.dev>,
	 Tianrui Zhao <zhaotianrui@loongson.cn>,
	Bibo Mao <maobibo@loongson.cn>,
	 Huacai Chen <chenhuacai@kernel.org>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	 Anup Patel <anup@brainfault.org>, Paul Walmsley <pjw@kernel.org>,
	 Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	 Christian Borntraeger <borntraeger@linux.ibm.com>,
	Janosch Frank <frankja@linux.ibm.com>,
	 Claudio Imbrenda <imbrenda@linux.ibm.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	 "Kirill A. Shutemov" <kas@kernel.org>,
	linux-arm-kernel@lists.infradead.org,  kvmarm@lists.linux.dev,
	kvm@vger.kernel.org, loongarch@lists.linux.dev,
	 linux-mips@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
	 kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org,
	 x86@kernel.org, linux-coco@lists.linux.dev,
	linux-kernel@vger.kernel.org,  Ira Weiny <ira.weiny@intel.com>,
	Kai Huang <kai.huang@intel.com>,
	 Michael Roth <michael.roth@amd.com>,
	Vishal Annapurve <vannapurve@google.com>,
	 Rick Edgecombe <rick.p.edgecombe@intel.com>,
	Ackerley Tng <ackerleytng@google.com>,
	 Binbin Wu <binbin.wu@linux.intel.com>
Subject: Re: [PATCH v3 19/25] KVM: TDX: Assert that mmu_lock is held for write when removing S-EPT entries
Date: Thu, 23 Oct 2025 08:14:04 -0700	[thread overview]
Message-ID: <aPpGPF8McvI3-OO7@google.com> (raw)
In-Reply-To: <aPnbIDxGlcAyI9vy@yzhao56-desk.sh.intel.com>

On Thu, Oct 23, 2025, Yan Zhao wrote:
> On Thu, Oct 16, 2025 at 05:32:37PM -0700, Sean Christopherson wrote:
> > Unconditionally assert that mmu_lock is held for write when removing S-EPT
> > entries, not just when removing S-EPT entries triggers certain conditions,
> > e.g. needs to do TDH_MEM_TRACK or kick vCPUs out of the guest.
> > Conditionally asserting implies that it's safe to hold mmu_lock for read
> > when those paths aren't hit, which is simply not true, as KVM doesn't
> > support removing S-EPT entries under read-lock.
> > 
> > Only two paths lead to remove_external_spte(), and both paths asserts that
> > mmu_lock is held for write (tdp_mmu_set_spte() via lockdep, and
> > handle_removed_pt() via KVM_BUG_ON()).
> > 
> > Deliberately leave lockdep assertions in the "no vCPUs" helpers to document
> > that wait_for_sept_zap is guarded by holding mmu_lock for write.
> > 
> > Signed-off-by: Sean Christopherson <seanjc@google.com>
> > ---
> >  arch/x86/kvm/vmx/tdx.c | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> > 
> > diff --git a/arch/x86/kvm/vmx/tdx.c b/arch/x86/kvm/vmx/tdx.c
> > index e517ad3d5f4f..f6782b0ffa98 100644
> > --- a/arch/x86/kvm/vmx/tdx.c
> > +++ b/arch/x86/kvm/vmx/tdx.c
> > @@ -1711,8 +1711,6 @@ static void tdx_track(struct kvm *kvm)
> >  	if (unlikely(kvm_tdx->state != TD_STATE_RUNNABLE))
> >  		return;
> >  
> > -	lockdep_assert_held_write(&kvm->mmu_lock);
> Could we also deliberately leave lockdep assertion for tdx_track()?

Can do.

> This is because if we allow removing S-EPT entries while holding mmu_lock for
> read in future, tdx_track() needs to be protected by a separate spinlock to
> ensure serialization of tdh_mem_track() and vCPUs kick-off (kicking off vCPUs
> must follow each tdh_mem_track() to unblock the next tdh_mem_track()).

Does this look/sound right?

From: Sean Christopherson <seanjc@google.com>
Date: Thu, 28 Aug 2025 17:06:17 -0700
Subject: [PATCH] KVM: TDX: Assert that mmu_lock is held for write when
 removing S-EPT entries

Unconditionally assert that mmu_lock is held for write when removing S-EPT
entries, not just when removing S-EPT entries triggers certain conditions,
e.g. needs to do TDH_MEM_TRACK or kick vCPUs out of the guest.
Conditionally asserting implies that it's safe to hold mmu_lock for read
when those paths aren't hit, which is simply not true, as KVM doesn't
support removing S-EPT entries under read-lock.

Only two paths lead to remove_external_spte(), and both paths asserts that
mmu_lock is held for write (tdp_mmu_set_spte() via lockdep, and
handle_removed_pt() via KVM_BUG_ON()).

Deliberately leave lockdep assertions in the "no vCPUs" helpers to document
that wait_for_sept_zap is guarded by holding mmu_lock for write, and keep
the conditional assert in tdx_track() as well, but with a comment to help
explain why holding mmu_lock for write matters (above and beyond why
tdx_sept_remove_private_spte()'s requirements).

Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/kvm/vmx/tdx.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/arch/x86/kvm/vmx/tdx.c b/arch/x86/kvm/vmx/tdx.c
index dca9e2561270..899051c64faa 100644
--- a/arch/x86/kvm/vmx/tdx.c
+++ b/arch/x86/kvm/vmx/tdx.c
@@ -1715,6 +1715,11 @@ static void tdx_track(struct kvm *kvm)
 	if (unlikely(kvm_tdx->state != TD_STATE_RUNNABLE))
 		return;
 
+	/*
+	 * The full sequence of TDH.MEM.TRACK and forcing vCPUs out of guest
+	 * mode must be serialized, as TDH.MEM.TRACK will fail if the previous
+	 * tracking epoch hasn't completed.
+	*/
 	lockdep_assert_held_write(&kvm->mmu_lock);
 
 	err = tdh_mem_track(&kvm_tdx->td);
@@ -1762,6 +1767,8 @@ static void tdx_sept_remove_private_spte(struct kvm *kvm, gfn_t gfn,
 	gpa_t gpa = gfn_to_gpa(gfn);
 	u64 err, entry, level_state;
 
+	lockdep_assert_held_write(&kvm->mmu_lock);
+
 	/*
 	 * HKID is released after all private pages have been removed, and set
 	 * before any might be populated. Warn if zapping is attempted when

base-commit: 69564844a116861ebea4396894005c8b4e48f870
--

-- 
kvm-riscv mailing list
kvm-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kvm-riscv

WARNING: multiple messages have this Message-ID (diff)
From: Sean Christopherson <seanjc@google.com>
To: Yan Zhao <yan.y.zhao@intel.com>
Cc: Marc Zyngier <maz@kernel.org>,
	Oliver Upton <oliver.upton@linux.dev>,
	 Tianrui Zhao <zhaotianrui@loongson.cn>,
	Bibo Mao <maobibo@loongson.cn>,
	 Huacai Chen <chenhuacai@kernel.org>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	 Anup Patel <anup@brainfault.org>, Paul Walmsley <pjw@kernel.org>,
	 Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	 Christian Borntraeger <borntraeger@linux.ibm.com>,
	Janosch Frank <frankja@linux.ibm.com>,
	 Claudio Imbrenda <imbrenda@linux.ibm.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	 "Kirill A. Shutemov" <kas@kernel.org>,
	linux-arm-kernel@lists.infradead.org,  kvmarm@lists.linux.dev,
	kvm@vger.kernel.org, loongarch@lists.linux.dev,
	 linux-mips@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
	 kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org,
	 x86@kernel.org, linux-coco@lists.linux.dev,
	linux-kernel@vger.kernel.org,  Ira Weiny <ira.weiny@intel.com>,
	Kai Huang <kai.huang@intel.com>,
	 Michael Roth <michael.roth@amd.com>,
	Vishal Annapurve <vannapurve@google.com>,
	 Rick Edgecombe <rick.p.edgecombe@intel.com>,
	Ackerley Tng <ackerleytng@google.com>,
	 Binbin Wu <binbin.wu@linux.intel.com>
Subject: Re: [PATCH v3 19/25] KVM: TDX: Assert that mmu_lock is held for write when removing S-EPT entries
Date: Thu, 23 Oct 2025 08:14:04 -0700	[thread overview]
Message-ID: <aPpGPF8McvI3-OO7@google.com> (raw)
In-Reply-To: <aPnbIDxGlcAyI9vy@yzhao56-desk.sh.intel.com>

On Thu, Oct 23, 2025, Yan Zhao wrote:
> On Thu, Oct 16, 2025 at 05:32:37PM -0700, Sean Christopherson wrote:
> > Unconditionally assert that mmu_lock is held for write when removing S-EPT
> > entries, not just when removing S-EPT entries triggers certain conditions,
> > e.g. needs to do TDH_MEM_TRACK or kick vCPUs out of the guest.
> > Conditionally asserting implies that it's safe to hold mmu_lock for read
> > when those paths aren't hit, which is simply not true, as KVM doesn't
> > support removing S-EPT entries under read-lock.
> > 
> > Only two paths lead to remove_external_spte(), and both paths asserts that
> > mmu_lock is held for write (tdp_mmu_set_spte() via lockdep, and
> > handle_removed_pt() via KVM_BUG_ON()).
> > 
> > Deliberately leave lockdep assertions in the "no vCPUs" helpers to document
> > that wait_for_sept_zap is guarded by holding mmu_lock for write.
> > 
> > Signed-off-by: Sean Christopherson <seanjc@google.com>
> > ---
> >  arch/x86/kvm/vmx/tdx.c | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> > 
> > diff --git a/arch/x86/kvm/vmx/tdx.c b/arch/x86/kvm/vmx/tdx.c
> > index e517ad3d5f4f..f6782b0ffa98 100644
> > --- a/arch/x86/kvm/vmx/tdx.c
> > +++ b/arch/x86/kvm/vmx/tdx.c
> > @@ -1711,8 +1711,6 @@ static void tdx_track(struct kvm *kvm)
> >  	if (unlikely(kvm_tdx->state != TD_STATE_RUNNABLE))
> >  		return;
> >  
> > -	lockdep_assert_held_write(&kvm->mmu_lock);
> Could we also deliberately leave lockdep assertion for tdx_track()?

Can do.

> This is because if we allow removing S-EPT entries while holding mmu_lock for
> read in future, tdx_track() needs to be protected by a separate spinlock to
> ensure serialization of tdh_mem_track() and vCPUs kick-off (kicking off vCPUs
> must follow each tdh_mem_track() to unblock the next tdh_mem_track()).

Does this look/sound right?

From: Sean Christopherson <seanjc@google.com>
Date: Thu, 28 Aug 2025 17:06:17 -0700
Subject: [PATCH] KVM: TDX: Assert that mmu_lock is held for write when
 removing S-EPT entries

Unconditionally assert that mmu_lock is held for write when removing S-EPT
entries, not just when removing S-EPT entries triggers certain conditions,
e.g. needs to do TDH_MEM_TRACK or kick vCPUs out of the guest.
Conditionally asserting implies that it's safe to hold mmu_lock for read
when those paths aren't hit, which is simply not true, as KVM doesn't
support removing S-EPT entries under read-lock.

Only two paths lead to remove_external_spte(), and both paths asserts that
mmu_lock is held for write (tdp_mmu_set_spte() via lockdep, and
handle_removed_pt() via KVM_BUG_ON()).

Deliberately leave lockdep assertions in the "no vCPUs" helpers to document
that wait_for_sept_zap is guarded by holding mmu_lock for write, and keep
the conditional assert in tdx_track() as well, but with a comment to help
explain why holding mmu_lock for write matters (above and beyond why
tdx_sept_remove_private_spte()'s requirements).

Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/kvm/vmx/tdx.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/arch/x86/kvm/vmx/tdx.c b/arch/x86/kvm/vmx/tdx.c
index dca9e2561270..899051c64faa 100644
--- a/arch/x86/kvm/vmx/tdx.c
+++ b/arch/x86/kvm/vmx/tdx.c
@@ -1715,6 +1715,11 @@ static void tdx_track(struct kvm *kvm)
 	if (unlikely(kvm_tdx->state != TD_STATE_RUNNABLE))
 		return;
 
+	/*
+	 * The full sequence of TDH.MEM.TRACK and forcing vCPUs out of guest
+	 * mode must be serialized, as TDH.MEM.TRACK will fail if the previous
+	 * tracking epoch hasn't completed.
+	*/
 	lockdep_assert_held_write(&kvm->mmu_lock);
 
 	err = tdh_mem_track(&kvm_tdx->td);
@@ -1762,6 +1767,8 @@ static void tdx_sept_remove_private_spte(struct kvm *kvm, gfn_t gfn,
 	gpa_t gpa = gfn_to_gpa(gfn);
 	u64 err, entry, level_state;
 
+	lockdep_assert_held_write(&kvm->mmu_lock);
+
 	/*
 	 * HKID is released after all private pages have been removed, and set
 	 * before any might be populated. Warn if zapping is attempted when

base-commit: 69564844a116861ebea4396894005c8b4e48f870
--

WARNING: multiple messages have this Message-ID (diff)
From: Sean Christopherson <seanjc@google.com>
To: Yan Zhao <yan.y.zhao@intel.com>
Cc: Marc Zyngier <maz@kernel.org>,
	Oliver Upton <oliver.upton@linux.dev>,
	 Tianrui Zhao <zhaotianrui@loongson.cn>,
	Bibo Mao <maobibo@loongson.cn>,
	 Huacai Chen <chenhuacai@kernel.org>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	 Anup Patel <anup@brainfault.org>, Paul Walmsley <pjw@kernel.org>,
	 Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	 Christian Borntraeger <borntraeger@linux.ibm.com>,
	Janosch Frank <frankja@linux.ibm.com>,
	 Claudio Imbrenda <imbrenda@linux.ibm.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	 "Kirill A. Shutemov" <kas@kernel.org>,
	linux-arm-kernel@lists.infradead.org,  kvmarm@lists.linux.dev,
	kvm@vger.kernel.org, loongarch@lists.linux.dev,
	 linux-mips@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
	 kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org,
	 x86@kernel.org, linux-coco@lists.linux.dev,
	linux-kernel@vger.kernel.org,  Ira Weiny <ira.weiny@intel.com>,
	Kai Huang <kai.huang@intel.com>,
	 Michael Roth <michael.roth@amd.com>,
	Vishal Annapurve <vannapurve@google.com>,
	 Rick Edgecombe <rick.p.edgecombe@intel.com>,
	Ackerley Tng <ackerleytng@google.com>,
	 Binbin Wu <binbin.wu@linux.intel.com>
Subject: Re: [PATCH v3 19/25] KVM: TDX: Assert that mmu_lock is held for write when removing S-EPT entries
Date: Thu, 23 Oct 2025 08:14:04 -0700	[thread overview]
Message-ID: <aPpGPF8McvI3-OO7@google.com> (raw)
In-Reply-To: <aPnbIDxGlcAyI9vy@yzhao56-desk.sh.intel.com>

On Thu, Oct 23, 2025, Yan Zhao wrote:
> On Thu, Oct 16, 2025 at 05:32:37PM -0700, Sean Christopherson wrote:
> > Unconditionally assert that mmu_lock is held for write when removing S-EPT
> > entries, not just when removing S-EPT entries triggers certain conditions,
> > e.g. needs to do TDH_MEM_TRACK or kick vCPUs out of the guest.
> > Conditionally asserting implies that it's safe to hold mmu_lock for read
> > when those paths aren't hit, which is simply not true, as KVM doesn't
> > support removing S-EPT entries under read-lock.
> > 
> > Only two paths lead to remove_external_spte(), and both paths asserts that
> > mmu_lock is held for write (tdp_mmu_set_spte() via lockdep, and
> > handle_removed_pt() via KVM_BUG_ON()).
> > 
> > Deliberately leave lockdep assertions in the "no vCPUs" helpers to document
> > that wait_for_sept_zap is guarded by holding mmu_lock for write.
> > 
> > Signed-off-by: Sean Christopherson <seanjc@google.com>
> > ---
> >  arch/x86/kvm/vmx/tdx.c | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> > 
> > diff --git a/arch/x86/kvm/vmx/tdx.c b/arch/x86/kvm/vmx/tdx.c
> > index e517ad3d5f4f..f6782b0ffa98 100644
> > --- a/arch/x86/kvm/vmx/tdx.c
> > +++ b/arch/x86/kvm/vmx/tdx.c
> > @@ -1711,8 +1711,6 @@ static void tdx_track(struct kvm *kvm)
> >  	if (unlikely(kvm_tdx->state != TD_STATE_RUNNABLE))
> >  		return;
> >  
> > -	lockdep_assert_held_write(&kvm->mmu_lock);
> Could we also deliberately leave lockdep assertion for tdx_track()?

Can do.

> This is because if we allow removing S-EPT entries while holding mmu_lock for
> read in future, tdx_track() needs to be protected by a separate spinlock to
> ensure serialization of tdh_mem_track() and vCPUs kick-off (kicking off vCPUs
> must follow each tdh_mem_track() to unblock the next tdh_mem_track()).

Does this look/sound right?

From: Sean Christopherson <seanjc@google.com>
Date: Thu, 28 Aug 2025 17:06:17 -0700
Subject: [PATCH] KVM: TDX: Assert that mmu_lock is held for write when
 removing S-EPT entries

Unconditionally assert that mmu_lock is held for write when removing S-EPT
entries, not just when removing S-EPT entries triggers certain conditions,
e.g. needs to do TDH_MEM_TRACK or kick vCPUs out of the guest.
Conditionally asserting implies that it's safe to hold mmu_lock for read
when those paths aren't hit, which is simply not true, as KVM doesn't
support removing S-EPT entries under read-lock.

Only two paths lead to remove_external_spte(), and both paths asserts that
mmu_lock is held for write (tdp_mmu_set_spte() via lockdep, and
handle_removed_pt() via KVM_BUG_ON()).

Deliberately leave lockdep assertions in the "no vCPUs" helpers to document
that wait_for_sept_zap is guarded by holding mmu_lock for write, and keep
the conditional assert in tdx_track() as well, but with a comment to help
explain why holding mmu_lock for write matters (above and beyond why
tdx_sept_remove_private_spte()'s requirements).

Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/kvm/vmx/tdx.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/arch/x86/kvm/vmx/tdx.c b/arch/x86/kvm/vmx/tdx.c
index dca9e2561270..899051c64faa 100644
--- a/arch/x86/kvm/vmx/tdx.c
+++ b/arch/x86/kvm/vmx/tdx.c
@@ -1715,6 +1715,11 @@ static void tdx_track(struct kvm *kvm)
 	if (unlikely(kvm_tdx->state != TD_STATE_RUNNABLE))
 		return;
 
+	/*
+	 * The full sequence of TDH.MEM.TRACK and forcing vCPUs out of guest
+	 * mode must be serialized, as TDH.MEM.TRACK will fail if the previous
+	 * tracking epoch hasn't completed.
+	*/
 	lockdep_assert_held_write(&kvm->mmu_lock);
 
 	err = tdh_mem_track(&kvm_tdx->td);
@@ -1762,6 +1767,8 @@ static void tdx_sept_remove_private_spte(struct kvm *kvm, gfn_t gfn,
 	gpa_t gpa = gfn_to_gpa(gfn);
 	u64 err, entry, level_state;
 
+	lockdep_assert_held_write(&kvm->mmu_lock);
+
 	/*
 	 * HKID is released after all private pages have been removed, and set
 	 * before any might be populated. Warn if zapping is attempted when

base-commit: 69564844a116861ebea4396894005c8b4e48f870
--

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

  reply	other threads:[~2025-10-23 15:14 UTC|newest]

Thread overview: 291+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-10-17  0:32 [PATCH v3 00/25] KVM: x86/mmu: TDX post-populate cleanups Sean Christopherson
2025-10-17  0:32 ` Sean Christopherson
2025-10-17  0:32 ` Sean Christopherson
2025-10-17  0:32 ` [PATCH v3 01/25] KVM: Make support for kvm_arch_vcpu_async_ioctl() mandatory Sean Christopherson
2025-10-17  0:32   ` Sean Christopherson
2025-10-17  0:32   ` Sean Christopherson
2025-10-17  9:12   ` Claudio Imbrenda
2025-10-17  9:12     ` Claudio Imbrenda
2025-10-17  9:12     ` Claudio Imbrenda
2025-10-17  0:32 ` [PATCH v3 02/25] KVM: Rename kvm_arch_vcpu_async_ioctl() to kvm_arch_vcpu_unlocked_ioctl() Sean Christopherson
2025-10-17  0:32   ` Sean Christopherson
2025-10-17  0:32   ` Sean Christopherson
2025-10-17  9:13   ` Claudio Imbrenda
2025-10-17  9:13     ` Claudio Imbrenda
2025-10-17  9:13     ` Claudio Imbrenda
2025-10-17  0:32 ` [PATCH v3 03/25] KVM: TDX: Drop PROVE_MMU=y sanity check on to-be-populated mappings Sean Christopherson
2025-10-17  0:32   ` Sean Christopherson
2025-10-17  0:32   ` Sean Christopherson
2025-10-22  3:15   ` Binbin Wu
2025-10-22  3:15     ` Binbin Wu
2025-10-22  3:15     ` Binbin Wu
2025-10-17  0:32 ` [PATCH v3 04/25] KVM: x86/mmu: Add dedicated API to map guest_memfd pfn into TDP MMU Sean Christopherson
2025-10-17  0:32   ` Sean Christopherson
2025-10-17  0:32   ` Sean Christopherson
2025-10-21  0:10   ` Edgecombe, Rick P
2025-10-21  0:10     ` Edgecombe, Rick P
2025-10-21  0:10     ` Edgecombe, Rick P
2025-10-21  4:06   ` Yan Zhao
2025-10-21  4:06     ` Yan Zhao
2025-10-21  4:06     ` Yan Zhao
2025-10-21 16:36     ` Sean Christopherson
2025-10-21 16:36       ` Sean Christopherson
2025-10-21 16:36       ` Sean Christopherson
2025-10-22  8:05       ` Yan Zhao
2025-10-22  8:05         ` Yan Zhao
2025-10-22  8:05         ` Yan Zhao
2025-10-22 18:12         ` Sean Christopherson
2025-10-22 18:12           ` Sean Christopherson
2025-10-22 18:12           ` Sean Christopherson
2025-10-23  6:48           ` Yan Zhao
2025-10-23  6:48             ` Yan Zhao
2025-10-23  6:48             ` Yan Zhao
2025-10-22  4:53   ` Yan Zhao
2025-10-22  4:53     ` Yan Zhao
2025-10-22  4:53     ` Yan Zhao
2025-10-30  8:34     ` Yan Zhao
2025-10-30  8:34       ` Yan Zhao
2025-10-30  8:34       ` Yan Zhao
2025-11-04 17:57       ` Sean Christopherson
2025-11-04 17:57         ` Sean Christopherson
2025-11-04 17:57         ` Sean Christopherson
2025-11-05  7:32         ` Yan Zhao
2025-11-05  7:32           ` Yan Zhao
2025-11-05  7:32           ` Yan Zhao
2025-11-05  7:47           ` Yan Zhao
2025-11-05  7:47             ` Yan Zhao
2025-11-05  7:47             ` Yan Zhao
2025-11-05 15:26             ` Sean Christopherson
2025-11-05 15:26               ` Sean Christopherson
2025-11-05 15:26               ` Sean Christopherson
2025-10-23 10:28   ` Huang, Kai
2025-10-23 10:28     ` Huang, Kai
2025-10-23 10:28     ` Huang, Kai
2025-10-17  0:32 ` [PATCH v3 05/25] Revert "KVM: x86/tdp_mmu: Add a helper function to walk down the TDP MMU" Sean Christopherson
2025-10-17  0:32   ` Sean Christopherson
2025-10-17  0:32   ` Sean Christopherson
2025-10-22  5:56   ` Binbin Wu
2025-10-22  5:56     ` Binbin Wu
2025-10-22  5:56     ` Binbin Wu
2025-10-23 10:30   ` Huang, Kai
2025-10-23 10:30     ` Huang, Kai
2025-10-23 10:30     ` Huang, Kai
2025-10-17  0:32 ` [PATCH v3 06/25] KVM: x86/mmu: Rename kvm_tdp_map_page() to kvm_tdp_page_prefault() Sean Christopherson
2025-10-17  0:32   ` Sean Christopherson
2025-10-17  0:32   ` Sean Christopherson
2025-10-22  5:57   ` Binbin Wu
2025-10-22  5:57     ` Binbin Wu
2025-10-22  5:57     ` Binbin Wu
2025-10-23 10:38   ` Huang, Kai
2025-10-23 10:38     ` Huang, Kai
2025-10-23 10:38     ` Huang, Kai
2025-10-17  0:32 ` [PATCH v3 07/25] KVM: TDX: Drop superfluous page pinning in S-EPT management Sean Christopherson
2025-10-17  0:32   ` Sean Christopherson
2025-10-17  0:32   ` Sean Christopherson
2025-10-21  0:10   ` Edgecombe, Rick P
2025-10-21  0:10     ` Edgecombe, Rick P
2025-10-21  0:10     ` Edgecombe, Rick P
2025-10-17  0:32 ` [PATCH v3 08/25] KVM: TDX: Return -EIO, not -EINVAL, on a KVM_BUG_ON() condition Sean Christopherson
2025-10-17  0:32   ` Sean Christopherson
2025-10-17  0:32   ` Sean Christopherson
2025-10-17  0:32 ` [PATCH v3 09/25] KVM: TDX: Fold tdx_sept_drop_private_spte() into tdx_sept_remove_private_spte() Sean Christopherson
2025-10-17  0:32   ` Sean Christopherson
2025-10-17  0:32   ` Sean Christopherson
2025-10-23 10:53   ` Huang, Kai
2025-10-23 10:53     ` Huang, Kai
2025-10-23 10:53     ` Huang, Kai
2025-10-23 14:59     ` Sean Christopherson
2025-10-23 14:59       ` Sean Christopherson
2025-10-23 14:59       ` Sean Christopherson
2025-10-23 22:20       ` Huang, Kai
2025-10-23 22:20         ` Huang, Kai
2025-10-23 22:20         ` Huang, Kai
2025-10-17  0:32 ` [PATCH v3 10/25] KVM: x86/mmu: Drop the return code from kvm_x86_ops.remove_external_spte() Sean Christopherson
2025-10-17  0:32   ` Sean Christopherson
2025-10-17  0:32   ` Sean Christopherson
2025-10-22  8:46   ` Yan Zhao
2025-10-22  8:46     ` Yan Zhao
2025-10-22  8:46     ` Yan Zhao
2025-10-22 19:08     ` Sean Christopherson
2025-10-22 19:08       ` Sean Christopherson
2025-10-22 19:08       ` Sean Christopherson
2025-10-17  0:32 ` [PATCH v3 11/25] KVM: TDX: Avoid a double-KVM_BUG_ON() in tdx_sept_zap_private_spte() Sean Christopherson
2025-10-17  0:32   ` Sean Christopherson
2025-10-17  0:32   ` Sean Christopherson
2025-10-23 22:21   ` Huang, Kai
2025-10-23 22:21     ` Huang, Kai
2025-10-23 22:21     ` Huang, Kai
2025-10-17  0:32 ` [PATCH v3 12/25] KVM: TDX: Use atomic64_dec_return() instead of a poor equivalent Sean Christopherson
2025-10-17  0:32   ` Sean Christopherson
2025-10-17  0:32   ` Sean Christopherson
2025-10-17  0:32 ` [PATCH v3 13/25] KVM: TDX: Fold tdx_mem_page_record_premap_cnt() into its sole caller Sean Christopherson
2025-10-17  0:32   ` Sean Christopherson
2025-10-17  0:32   ` Sean Christopherson
2025-10-23 22:32   ` Huang, Kai
2025-10-23 22:32     ` Huang, Kai
2025-10-23 22:32     ` Huang, Kai
2025-10-24  7:21     ` Huang, Kai
2025-10-24  7:21       ` Huang, Kai
2025-10-24  7:21       ` Huang, Kai
2025-10-24  7:38   ` Binbin Wu
2025-10-24  7:38     ` Binbin Wu
2025-10-24  7:38     ` Binbin Wu
2025-10-24 16:33     ` Sean Christopherson
2025-10-24 16:33       ` Sean Christopherson
2025-10-24 16:33       ` Sean Christopherson
2025-10-27  9:01       ` Binbin Wu
2025-10-27  9:01         ` Binbin Wu
2025-10-27  9:01         ` Binbin Wu
2025-10-28  0:29         ` Sean Christopherson
2025-10-28  0:29           ` Sean Christopherson
2025-10-28  0:29           ` Sean Christopherson
2025-10-17  0:32 ` [PATCH v3 14/25] KVM: TDX: Bug the VM if extended the initial measurement fails Sean Christopherson
2025-10-17  0:32   ` Sean Christopherson
2025-10-17  0:32   ` Sean Christopherson
2025-10-21  0:10   ` Edgecombe, Rick P
2025-10-21  0:10     ` Edgecombe, Rick P
2025-10-21  0:10     ` Edgecombe, Rick P
2025-10-23 17:27     ` Sean Christopherson
2025-10-23 17:27       ` Sean Christopherson
2025-10-23 17:27       ` Sean Christopherson
2025-10-23 22:48   ` Huang, Kai
2025-10-23 22:48     ` Huang, Kai
2025-10-23 22:48     ` Huang, Kai
2025-10-24 16:35     ` Sean Christopherson
2025-10-24 16:35       ` Sean Christopherson
2025-10-24 16:35       ` Sean Christopherson
2025-10-27  9:31       ` Yan Zhao
2025-10-27  9:31         ` Yan Zhao
2025-10-27  9:31         ` Yan Zhao
2025-10-17  0:32 ` [PATCH v3 15/25] KVM: TDX: ADD pages to the TD image while populating mirror EPT entries Sean Christopherson
2025-10-17  0:32   ` Sean Christopherson
2025-10-17  0:32   ` Sean Christopherson
2025-10-24  7:18   ` Huang, Kai
2025-10-24  7:18     ` Huang, Kai
2025-10-24  7:18     ` Huang, Kai
2025-10-17  0:32 ` [PATCH v3 16/25] KVM: TDX: Fold tdx_sept_zap_private_spte() into tdx_sept_remove_private_spte() Sean Christopherson
2025-10-17  0:32   ` Sean Christopherson
2025-10-17  0:32   ` Sean Christopherson
2025-10-24  9:53   ` Huang, Kai
2025-10-24  9:53     ` Huang, Kai
2025-10-24  9:53     ` Huang, Kai
2025-10-17  0:32 ` [PATCH v3 17/25] KVM: TDX: Combine KVM_BUG_ON + pr_tdx_error() into TDX_BUG_ON() Sean Christopherson
2025-10-17  0:32   ` Sean Christopherson
2025-10-17  0:32   ` Sean Christopherson
2025-10-17  0:32 ` [PATCH v3 18/25] KVM: TDX: Derive error argument names from the local variable names Sean Christopherson
2025-10-17  0:32   ` Sean Christopherson
2025-10-17  0:32   ` Sean Christopherson
2025-10-17  0:32 ` [PATCH v3 19/25] KVM: TDX: Assert that mmu_lock is held for write when removing S-EPT entries Sean Christopherson
2025-10-17  0:32   ` Sean Christopherson
2025-10-17  0:32   ` Sean Christopherson
2025-10-23  7:37   ` Yan Zhao
2025-10-23  7:37     ` Yan Zhao
2025-10-23  7:37     ` Yan Zhao
2025-10-23 15:14     ` Sean Christopherson [this message]
2025-10-23 15:14       ` Sean Christopherson
2025-10-23 15:14       ` Sean Christopherson
2025-10-24 10:05       ` Yan Zhao
2025-10-24 10:05         ` Yan Zhao
2025-10-24 10:05         ` Yan Zhao
2025-10-17  0:32 ` [PATCH v3 20/25] KVM: TDX: Add macro to retry SEAMCALLs when forcing vCPUs out of guest Sean Christopherson
2025-10-17  0:32   ` Sean Christopherson
2025-10-17  0:32   ` Sean Christopherson
2025-10-24 10:09   ` Huang, Kai
2025-10-24 10:09     ` Huang, Kai
2025-10-24 10:09     ` Huang, Kai
2025-10-27 19:20     ` Sean Christopherson
2025-10-27 19:20       ` Sean Christopherson
2025-10-27 19:20       ` Sean Christopherson
2025-10-27 22:00       ` Huang, Kai
2025-10-27 22:00         ` Huang, Kai
2025-10-27 22:00         ` Huang, Kai
2025-10-17  0:32 ` [PATCH v3 21/25] KVM: TDX: Add tdx_get_cmd() helper to get and validate sub-ioctl command Sean Christopherson
2025-10-17  0:32   ` Sean Christopherson
2025-10-17  0:32   ` Sean Christopherson
2025-10-21  0:12   ` Edgecombe, Rick P
2025-10-21  0:12     ` Edgecombe, Rick P
2025-10-21  0:12     ` Edgecombe, Rick P
2025-10-24 10:11   ` Huang, Kai
2025-10-24 10:11     ` Huang, Kai
2025-10-24 10:11     ` Huang, Kai
2025-10-17  0:32 ` [PATCH v3 22/25] KVM: TDX: Convert INIT_MEM_REGION and INIT_VCPU to "unlocked" vCPU ioctl Sean Christopherson
2025-10-17  0:32   ` Sean Christopherson
2025-10-17  0:32   ` Sean Christopherson
2025-10-24 10:36   ` Huang, Kai
2025-10-24 10:36     ` Huang, Kai
2025-10-24 10:36     ` Huang, Kai
2025-10-17  0:32 ` [PATCH v3 23/25] KVM: TDX: Use guard() to acquire kvm->lock in tdx_vm_ioctl() Sean Christopherson
2025-10-17  0:32   ` Sean Christopherson
2025-10-17  0:32   ` Sean Christopherson
2025-10-21  0:10   ` Edgecombe, Rick P
2025-10-21  0:10     ` Edgecombe, Rick P
2025-10-21  0:10     ` Edgecombe, Rick P
2025-10-21 16:56     ` Sean Christopherson
2025-10-21 16:56       ` Sean Christopherson
2025-10-21 16:56       ` Sean Christopherson
2025-10-21 19:03       ` Edgecombe, Rick P
2025-10-21 19:03         ` Edgecombe, Rick P
2025-10-21 19:03         ` Edgecombe, Rick P
2025-10-24 10:36   ` Huang, Kai
2025-10-24 10:36     ` Huang, Kai
2025-10-24 10:36     ` Huang, Kai
2025-10-17  0:32 ` [PATCH v3 24/25] KVM: TDX: Guard VM state transitions with "all" the locks Sean Christopherson
2025-10-17  0:32   ` Sean Christopherson
2025-10-17  0:32   ` Sean Christopherson
2025-10-24 10:02   ` Yan Zhao
2025-10-24 10:02     ` Yan Zhao
2025-10-24 10:02     ` Yan Zhao
2025-10-24 16:57     ` Sean Christopherson
2025-10-24 16:57       ` Sean Christopherson
2025-10-24 16:57       ` Sean Christopherson
2025-10-27  9:26       ` Yan Zhao
2025-10-27  9:26         ` Yan Zhao
2025-10-27  9:26         ` Yan Zhao
2025-10-27 17:46         ` Edgecombe, Rick P
2025-10-27 17:46           ` Edgecombe, Rick P
2025-10-27 17:46           ` Edgecombe, Rick P
2025-10-27 18:10           ` Sean Christopherson
2025-10-27 18:10             ` Sean Christopherson
2025-10-27 18:10             ` Sean Christopherson
2025-10-28  0:28             ` [PATCH] KVM: TDX: Take MMU lock around tdh_vp_init() Rick Edgecombe
2025-10-28  0:28               ` Rick Edgecombe
2025-10-28  0:28               ` Rick Edgecombe
2025-10-28  5:37               ` Yan Zhao
2025-10-28  5:37                 ` Yan Zhao
2025-10-28  5:37                 ` Yan Zhao
2025-10-29  6:37               ` Binbin Wu
2025-10-29  6:37                 ` Binbin Wu
2025-10-29  6:37                 ` Binbin Wu
2025-11-18 23:31               ` Sean Christopherson
2025-11-18 23:31                 ` Sean Christopherson
2025-11-18 23:31                 ` Sean Christopherson
2025-11-19  0:01                 ` Edgecombe, Rick P
2025-11-19  0:01                   ` Edgecombe, Rick P
2025-11-19  0:01                   ` Edgecombe, Rick P
2025-11-19  0:02                 ` Edgecombe, Rick P
2025-11-19  0:02                   ` Edgecombe, Rick P
2025-11-19  0:02                   ` Edgecombe, Rick P
2025-10-28  1:37           ` [PATCH v3 24/25] KVM: TDX: Guard VM state transitions with "all" the locks Yan Zhao
2025-10-28  1:37             ` Yan Zhao
2025-10-28  1:37             ` Yan Zhao
2025-10-28 17:40             ` Edgecombe, Rick P
2025-10-28 17:40               ` Edgecombe, Rick P
2025-10-28 17:40               ` Edgecombe, Rick P
2025-10-24 10:53   ` Huang, Kai
2025-10-24 10:53     ` Huang, Kai
2025-10-24 10:53     ` Huang, Kai
2025-10-28  0:28   ` Huang, Kai
2025-10-28  0:28     ` Huang, Kai
2025-10-28  0:28     ` Huang, Kai
2025-10-28  0:37     ` Sean Christopherson
2025-10-28  0:37       ` Sean Christopherson
2025-10-28  0:37       ` Sean Christopherson
2025-10-28  1:01       ` Huang, Kai
2025-10-28  1:01         ` Huang, Kai
2025-10-28  1:01         ` Huang, Kai
2025-10-17  0:32 ` [PATCH v3 25/25] KVM: TDX: Fix list_add corruption during vcpu_load() Sean Christopherson
2025-10-17  0:32   ` Sean Christopherson
2025-10-17  0:32   ` Sean Christopherson
2025-10-20  8:50   ` Yan Zhao
2025-10-20  8:50     ` Yan Zhao
2025-10-20  8:50     ` Yan Zhao

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=aPpGPF8McvI3-OO7@google.com \
    --to=seanjc@google.com \
    --cc=ackerleytng@google.com \
    --cc=anup@brainfault.org \
    --cc=aou@eecs.berkeley.edu \
    --cc=binbin.wu@linux.intel.com \
    --cc=borntraeger@linux.ibm.com \
    --cc=chenhuacai@kernel.org \
    --cc=frankja@linux.ibm.com \
    --cc=imbrenda@linux.ibm.com \
    --cc=ira.weiny@intel.com \
    --cc=kai.huang@intel.com \
    --cc=kas@kernel.org \
    --cc=kvm-riscv@lists.infradead.org \
    --cc=kvm@vger.kernel.org \
    --cc=kvmarm@lists.linux.dev \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-coco@lists.linux.dev \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mips@vger.kernel.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=loongarch@lists.linux.dev \
    --cc=maddy@linux.ibm.com \
    --cc=maobibo@loongson.cn \
    --cc=maz@kernel.org \
    --cc=michael.roth@amd.com \
    --cc=oliver.upton@linux.dev \
    --cc=palmer@dabbelt.com \
    --cc=pbonzini@redhat.com \
    --cc=pjw@kernel.org \
    --cc=rick.p.edgecombe@intel.com \
    --cc=vannapurve@google.com \
    --cc=x86@kernel.org \
    --cc=yan.y.zhao@intel.com \
    --cc=zhaotianrui@loongson.cn \
    /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.