mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "Edgecombe, Rick P" <rick.p.edgecombe@intel.com>
To: "dedekind1@gmail.com" <dedekind1@gmail.com>,
	"seanjc@google.com" <seanjc@google.com>
Cc: "hpa@zytor.com" <hpa@zytor.com>, "bp@alien8.de" <bp@alien8.de>,
	"x86@kernel.org" <x86@kernel.org>,
	"kas@kernel.org" <kas@kernel.org>,
	"binbin.wu@linux.intel.com" <binbin.wu@linux.intel.com>,
	"Li, Xiaoyao" <xiaoyao.li@intel.com>,
	"sathyanarayanan.kuppuswamy@linux.intel.com"
	<sathyanarayanan.kuppuswamy@linux.intel.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"dave.hansen@linux.intel.com" <dave.hansen@linux.intel.com>,
	"tglx@kernel.org" <tglx@kernel.org>,
	"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
	"linux-coco@lists.linux.dev" <linux-coco@lists.linux.dev>,
	"mingo@redhat.com" <mingo@redhat.com>,
	"Fang, Peter" <peter.fang@intel.com>
Subject: Re: [PATCH v3 0/4] tdx-guest: Make Quote buffer size dynamic
Date: Mon, 17 Aug 2026 17:26:05 +0000	[thread overview]
Message-ID: <0b5a26492f367f793aab38e4a0d9d6f398340f51.camel@intel.com> (raw)
In-Reply-To: <498af8d6a5de3ee05e0216ea075c0eebf88c7072.camel@gmail.com>

On Sat, 2026-08-15 at 14:39 +0300, Artem Bityutskiy wrote:
> On Fri, 2026-08-14 at 15:55 +0000, Edgecombe, Rick P wrote:
> > On Fri, 2026-08-14 at 08:45 +0300, Artem Bityutskiy wrote:
> > > But why DICE-based attestation uses 2-flow design? Could TD run a
> > > TDCALL[TDG.GET.QUOTE2] or something directly. No concept of TD report
> > > would be needed. That would be my current vision of "cleanest".
> > 
> > We discussed this approach internally and in PUCK. The problem is there is a
> > shared resource, and so something needs to handle locking and fairness
> > between
> > the guests. Going to the host keeps all the scheduling type stuff in that
> > domain.
> 
> Good point. I did not think about this aspect.
> 
> I am curious if today this is an attestation-only problem or a pattern.
> I mean this "many TDs compete for a shared TDX capability, VMM needs to
> be involved to handle fairness".
> 

Yea, I think it is a really good question. This is getting off topic now, but...

There is an existing issue we have with the "host priority" (HP) bit. This is a
part of the TDX arch that is designed to help with guest host contention. For
example a TDG call like ACCEPT can take an S-EPT lock that the host wants to
also take with a TDH call. It is sort of important to have the host be in
ultimate control. So the way the HP bit works is, if the host meets contention,
it sets the HP bit. The bit means if the guest tries to take the lock again, it
is blocked without letting the lock get taken. This gives the host a chance to
retry and succeed. After the host succeeds in taking the lock, the HP bit is
cleared. This is like a crude fairness thing.

But it all depends on the host retrying. If the host never retries because
userspace intervenes, then the guest stays locked out. We actually hit this
condition in the tdx mmu stress selftest. So it is on the to-do list to fix in
TDX arch.

Now how this connects to the 1-flow vs 2-flow design... As we have been
discussing this quote/report stuff, I wondered if we couldn't solve the HP bit
problems with a similar 2-flow thing. For example a TDG.ACCEPT call could exit
to the host without taking any locks and providing some kind of token, that a
paired TDH call could be used to complete the accept (and take the locks). TDH
calls should not be able to accept guest memory arbitrarily, so there needs to
be some kind of security validation on the TDH call. But then the host could
control all the scheduling/priority stuff. The overall solution would be better
for having this locking balancing stuff done in a single place where there are
no odd overlaps. But it means we also have extra host code for every TDG call
that takes a problematic lock. Probably more TDX module complexity too.

So yea, I wonder too if we could make this a general pattern.


  reply	other threads:[~2026-08-17 17:26 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-29 12:29 Peter Fang
2026-07-29 12:29 ` [PATCH v3 1/4] x86/tdx: Add helper to query maximum TD Quote size Peter Fang
2026-07-29 12:29 ` [PATCH v3 2/4] virt: tdx-guest: Calculate the Quote buffer size safely Peter Fang
2026-07-29 18:29   ` Kuppuswamy Sathyanarayanan
2026-07-29 12:29 ` [PATCH v3 3/4] virt: tdx-guest: Use a variable to store the Quote buffer size Peter Fang
2026-07-29 18:47   ` Kuppuswamy Sathyanarayanan
2026-07-29 12:29 ` [PATCH v3 4/4] virt: tdx-guest: Allocate Quote buffer dynamically Peter Fang
2026-07-29 21:21 ` [PATCH v3 0/4] tdx-guest: Make Quote buffer size dynamic Edgecombe, Rick P
2026-08-11 22:40   ` Edgecombe, Rick P
2026-08-12 14:08     ` Sean Christopherson
2026-08-12 16:02       ` Edgecombe, Rick P
2026-08-12 16:43         ` Sean Christopherson
2026-08-12 17:22           ` Edgecombe, Rick P
2026-08-12 22:37             ` Peter Fang
2026-08-12 22:47               ` Edgecombe, Rick P
2026-08-12 23:10                 ` Sean Christopherson
2026-08-12 23:30                   ` Edgecombe, Rick P
2026-08-13 19:32                     ` Artem Bityutskiy
2026-08-13 20:14                       ` Edgecombe, Rick P
2026-08-14  5:45                         ` Artem Bityutskiy
2026-08-14  7:37                           ` Peter Fang
2026-08-14 15:55                           ` Edgecombe, Rick P
2026-08-15 11:39                             ` Artem Bityutskiy
2026-08-17 17:26                               ` Edgecombe, Rick P [this message]
2026-08-18 11:09                                 ` Artem Bityutskiy
2026-08-18 20:37                       ` Sean Christopherson
2026-08-18 23:46                         ` Edgecombe, Rick P
2026-08-19 14:57                         ` Artem Bityutskiy
2026-08-12 23:27                 ` Peter Fang
2026-08-12 21:02         ` Peter Fang
2026-08-27 22:22   ` Peter Fang
2026-08-27 22:41     ` Edgecombe, Rick P

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=0b5a26492f367f793aab38e4a0d9d6f398340f51.camel@intel.com \
    --to=rick.p.edgecombe@intel.com \
    --cc=binbin.wu@linux.intel.com \
    --cc=bp@alien8.de \
    --cc=dave.hansen@linux.intel.com \
    --cc=dedekind1@gmail.com \
    --cc=hpa@zytor.com \
    --cc=kas@kernel.org \
    --cc=kvm@vger.kernel.org \
    --cc=linux-coco@lists.linux.dev \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=peter.fang@intel.com \
    --cc=sathyanarayanan.kuppuswamy@linux.intel.com \
    --cc=seanjc@google.com \
    --cc=tglx@kernel.org \
    --cc=x86@kernel.org \
    --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

all inboxes | Powered by JetHome®