From: Artem Bityutskiy <dedekind1@gmail.com>
To: "Edgecombe, Rick P" <rick.p.edgecombe@intel.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: Tue, 18 Aug 2026 14:09:11 +0300 [thread overview]
Message-ID: <83968006d6ee498621978d81a02659bb6186a0b9.camel@gmail.com> (raw)
In-Reply-To: <0b5a26492f367f793aab38e4a0d9d6f398340f51.camel@intel.com>
On Mon, 2026-08-17 at 17:26 +0000, Edgecombe, Rick P wrote:
> > 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.
Thanks. Yes, sounds crude, and it does not look like it covers
fairness across TDs. It only covers the "VMM has priority" part.
> 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.
I see, the VMM not making progress blocks TDs which could make
progress otherwise. Thanks for the info.
TDX specs describe the HP_LOCK_TIMEOUT per-TD property (set by the host
via TDH.MNG.WR), which could be used to somewhat make the symptom
somewhat controllable, may be make pain less painful, but it is not a
cure for the illness.
> 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.
Yeah. We have TDG.VP.VMCALL as an "exit to the VMM and let it handle
stuff" capability.
So essentially you are pointing out that one of the approaches is
turning a problematic
TDCALL[TDG.ABRA.CADABRA]
into a
TDCALL[TDG.VP.VMCALL]<AbraCadabra>.
I guess this approach could be used in few selected cases.
Thanks!
next prev parent reply other threads:[~2026-08-18 11:09 UTC|newest]
Thread overview: 30+ 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
2026-08-18 11:09 ` Artem Bityutskiy [this message]
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
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=83968006d6ee498621978d81a02659bb6186a0b9.camel@gmail.com \
--to=dedekind1@gmail.com \
--cc=binbin.wu@linux.intel.com \
--cc=bp@alien8.de \
--cc=dave.hansen@linux.intel.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=rick.p.edgecombe@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®