From: Peter Fang <peter.fang@intel.com>
To: Dave Hansen <dave.hansen@intel.com>
Cc: Dave Hansen <dave.hansen@linux.intel.com>,
Kiryl Shutsemau <kas@kernel.org>,
Rick Edgecombe <rick.p.edgecombe@intel.com>,
"Kuppuswamy Sathyanarayanan"
<sathyanarayanan.kuppuswamy@linux.intel.com>,
Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
Borislav Petkov <bp@alien8.de>, <x86@kernel.org>,
"H. Peter Anvin" <hpa@zytor.com>, <linux-kernel@vger.kernel.org>,
<linux-coco@lists.linux.dev>, <kvm@vger.kernel.org>,
Xiaoyao Li <xiaoyao.li@intel.com>,
Binbin Wu <binbin.wu@linux.intel.com>,
Tony Lindgren <tony.lindgren@linux.intel.com>,
Sean Christopherson <seanjc@google.com>,
Artem Bityutskiy <artem.bityutskiy@intel.com>
Subject: Re: [PATCH v4 4/4] virt: tdx-guest: Allocate Quote buffer dynamically
Date: Tue, 22 Sep 2026 09:20:11 -0700 [thread overview]
Message-ID: <arKquxrRpaKAUsHY@intel.com> (raw)
In-Reply-To: <c88327ac-6227-4e4a-85b5-0ad320871637@intel.com>
On Mon, Sep 21, 2026 at 03:47:02PM -0700, Dave Hansen wrote:
> On 9/15/26 02:26, Peter Fang wrote:
> > diff --git a/drivers/virt/coco/tdx-guest/tdx-guest.c b/drivers/virt/coco/tdx-guest/tdx-guest.c
> > index ec886c401fcb..7224a66b65d1 100644
> > --- a/drivers/virt/coco/tdx-guest/tdx-guest.c
> > +++ b/drivers/virt/coco/tdx-guest/tdx-guest.c
> > @@ -162,7 +162,7 @@ static void tdx_mr_deinit(const struct attribute_group *mr_grp)
> > * DICE-based attestation uses layered evidence that requires
> > * larger Quote size (~100K).
> > */
> > -#define GET_QUOTE_BUF_SIZE SZ_128K
> > +#define GET_QUOTE_DEFAULT_BUF_SIZE SZ_128K
>
> The naming of "GET_QUOTE_DEFAULT_BUF_SIZE" is rather unfortunate. "GET"
> is a verb. It is for functions.
>
> Isn't it "TDX_DEFAULT_QUOTE_SIZE"?
>
> I know the TDCALL leaf is "GET_QUOTE" but replaying that naming is
> horribly confusing.
TDX_DEFAULT_QUOTE_SIZE is much clearer. I'll rename it.
>
> No, I'm sorry, that's not how we do multi-line if()'s. Brackets please.
>
> I'd much rather see something structured this way:
>
> static size_t get_quote_buf_size(void)
> {
> static u32 full_quote_len;
> /* Size of the quote itself, no header: */
> u32 quote_data_len;
>
> if (full_quote_len)
> return full_quote_len;
>
> /* Ask the module for the max data size: */
> tdx_read_max_quote_data_len("e_data_len);
>
> /* Fall back to defaults on old TDX modules: */
> if (!quote_data_len)
> quote_data_len = GET_QUOTE_DEFAULT_DATA_SIZE;
>
> /* Add room for the header metadata: */
> full_quote_len = quote_data_len + sizeof(struct tdx_quote_buf);
> full_quote_len = PAGE_ALIGN(full_quote_len);
>
> return full_quote_len;
> }
>
> Having a static function variable beats a global every single time when
> possible. This way, you can (guaranteed) see 100% of the code that reads
> or writes the variable. Anybody can muck with a global and you need to
> grep or search to look at all the other code in the file even for a
> static global.
This is much better. I'll rewrite it.
quote_data_len doesn't change at runtime, so this pattern works well.
>
> Also note that it talks about quote data and metadata instead of just
> "lengths".
>
> You also have a mess of naming there. Some 'len', some 'size'. Pick one.
Yeah it's pretty messy. I'll clean this up.
>
> > static void *alloc_quote_buf(size_t len)
> > {
> > unsigned int count = len >> PAGE_SHIFT;
> > void *addr;
> >
> > + /*
> > + * This fails if the requested size exceeds the buddy allocator's
> > + * maximum order (order-10, 4MB).
> > + */
> ...
>
> I don't think you need to document the buddy allocator's behavior here.
>
> Why did you even add this?
I'll remove it. No need to redocument the API. Thanks.
next prev parent reply other threads:[~2026-09-22 16:20 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-15 9:25 [PATCH v4 0/4] tdx-guest: Make Quote buffer size dynamic Peter Fang
2026-09-15 9:26 ` [PATCH v4 1/4] x86/tdx: Add helper to query maximum TD Quote size Peter Fang
2026-09-21 22:14 ` Dave Hansen
2026-09-22 16:06 ` Peter Fang
2026-09-15 9:26 ` [PATCH v4 2/4] virt: tdx-guest: Calculate the Quote buffer size safely Peter Fang
2026-09-16 12:26 ` Kiryl Shutsemau
2026-09-15 9:26 ` [PATCH v4 3/4] virt: tdx-guest: Use a variable to store the Quote buffer size Peter Fang
2026-09-16 12:30 ` Kiryl Shutsemau
2026-09-22 10:05 ` Xiaoyao Li
2026-09-22 14:59 ` Dave Hansen
2026-09-22 16:30 ` Peter Fang
2026-09-22 17:34 ` Dave Hansen
2026-09-22 21:36 ` Peter Fang
2026-09-22 21:40 ` Dave Hansen
2026-09-22 19:46 ` Edgecombe, Rick P
2026-09-22 22:38 ` Dave Hansen
2026-09-15 9:26 ` [PATCH v4 4/4] virt: tdx-guest: Allocate Quote buffer dynamically Peter Fang
2026-09-16 12:31 ` Kiryl Shutsemau
2026-09-17 9:23 ` Peter Fang
2026-09-21 22:47 ` Dave Hansen
2026-09-22 16:20 ` Peter Fang [this message]
2026-09-15 14:07 ` [PATCH v4 0/4] tdx-guest: Make Quote buffer size dynamic Sean Christopherson
2026-09-15 16:11 ` Edgecombe, Rick P
2026-09-15 23:04 ` Peter Fang
2026-09-16 0:06 ` Edgecombe, Rick P
2026-09-16 0:34 ` Peter Fang
2026-09-16 0:36 ` Edgecombe, Rick P
2026-09-16 0:50 ` Peter Fang
2026-09-16 1:20 ` 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=arKquxrRpaKAUsHY@intel.com \
--to=peter.fang@intel.com \
--cc=artem.bityutskiy@intel.com \
--cc=binbin.wu@linux.intel.com \
--cc=bp@alien8.de \
--cc=dave.hansen@intel.com \
--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=rick.p.edgecombe@intel.com \
--cc=sathyanarayanan.kuppuswamy@linux.intel.com \
--cc=seanjc@google.com \
--cc=tglx@kernel.org \
--cc=tony.lindgren@linux.intel.com \
--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 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.