All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Fang <peter.fang@intel.com>
To: "Edgecombe, Rick P" <rick.p.edgecombe@intel.com>
Cc: "sathyanarayanan.kuppuswamy@linux.intel.com"
	<sathyanarayanan.kuppuswamy@linux.intel.com>,
	"kas@kernel.org" <kas@kernel.org>,
	"dave.hansen@linux.intel.com" <dave.hansen@linux.intel.com>,
	"seanjc@google.com" <seanjc@google.com>,
	"bp@alien8.de" <bp@alien8.de>, "x86@kernel.org" <x86@kernel.org>,
	"binbin.wu@linux.intel.com" <binbin.wu@linux.intel.com>,
	"hpa@zytor.com" <hpa@zytor.com>,
	"mingo@redhat.com" <mingo@redhat.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"Li, Xiaoyao" <xiaoyao.li@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>,
	"Bityutskiy, Artem" <artem.bityutskiy@intel.com>,
	"tony.lindgren@linux.intel.com" <tony.lindgren@linux.intel.com>
Subject: Re: [PATCH v6 4/6] virt: tdx-guest: Add a helper for the Quote buffer size
Date: Wed, 30 Sep 2026 15:52:15 -0700	[thread overview]
Message-ID: <ar2Sn1ZiDQdygPPn@intel.com> (raw)
In-Reply-To: <007f5865912a9fb40c0e3a1ca9b7bb36d8af9794.camel@intel.com>

On Wed, Sep 30, 2026 at 03:14:14PM -0700, Edgecombe, Rick P wrote:
> On Wed, 2026-09-30 at 03:30 -0700, Peter Fang wrote:
> > +
> >  static void free_quote_buf(struct tdx_quote_buf *buf)
> >  {
> > -	size_t len = PAGE_ALIGN(GET_QUOTE_BUF_SIZE);
> > -	unsigned int count = len >> PAGE_SHIFT;
> > +	size_t alloc_size = PAGE_ALIGN(get_quote_buf_size());
> > +	unsigned int count;
> > +
> > +	count = alloc_size >> PAGE_SHIFT;
> 
> Why change the count to be set outside of the declarations here and below?

Ah good catch... It was previously in my tree:

        size_t alloc_size = get_quote_buf_size();
        unsigned int count = alloc_size >> PAGE_SHIFT;

But with PAGE_ALIGN() added it keeps the reverse fir tree order. I'll
fix it up. Thanks.

> 
> >  
> > @@ -266,6 +276,7 @@ static int tdx_report_new_locked(struct tsm_report *report)
> >  {
> >  	u8 *buf;
> >  	struct tsm_report_desc *desc = &report->desc;
> > +	size_t quote_buf_size = get_quote_buf_size();
> 
> This local var is a performance optimization? Or a line shortener?

Both I think. Calling get_quote_buf_size() 3 times in this function felt
a bit much. Should I drop this?

> 
> > @@ -292,7 +303,7 @@ static int tdx_report_new_locked(struct tsm_report *report)
> >  	if (ret)
> >  		return ret;
> >  
> > -	err = tdx_hcall_get_quote(quote_buf, GET_QUOTE_BUF_SIZE);
> > +	err = tdx_hcall_get_quote(quote_buf, PAGE_ALIGN(quote_buf_size));
> 
> The point of leaving page alignment to the callers was to not churn the existing
> code in this patch. But this caller is getting changed anyway for some reason. 
> 
> In patch 6, it changes to the dynamic buffer, which might not be page aligned.
> But what if len passed through the GHCI call is not page aligned? Does it cause
> a problem? Oh! GHCI docs say "R13 - Size of shared GPA. The size must be 4KB-
> aligned."

Yes, and it's documented in tdx_hcall_get_quote() as well.

> 
> So it needs new alignment only because of the dynamic buffer, and to fulfill the
> GHCI spec. Or otherwise I guess you could claim that the page alignment is added
> here because it was always required and now it's too hard to see that any
> possible size is already aligned. I think it's weak. I'd put it in patch 6 and

I think my original intent was to make sure all the PAGE_ALIGN()'s
appear in the same patch. For example in alloc_quote_buf() and
free_quote_buf() it's easier to see PAGE_ALIGN() is needed by the
'count'. I thought about adding a comment above the
tdx_hcall_get_quote() call... But that function is already pretty well
documented.

There's an existing inconsistency in the driver. In alloc_quote_buf()
and free_quote_buf() the size is PAGE_ALIGN()'d despite
GET_QUOTE_BUF_SIZE being 128K. But in tdx_report_new_locked() it skips
the PAGE_ALIGN() when calling tdx_hcall_get_quote().

I'm ok moving this to patch 6. I'm a bit concerned it would make patch 6
look like doing two things at once, because Dave asked for the feature
itself to be contained in a single patch. Do you still think putting it
here is too weak?

> explain why it is now needed at that point.
> 

  reply	other threads:[~2026-09-30 22:52 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-30 10:30 [PATCH v6 0/6] tdx-guest: Make Quote buffer size dynamic Peter Fang
2026-09-30 10:30 ` [PATCH v6 1/6] x86/tdx: Take the Quote buffer as a generic pointer Peter Fang
2026-09-30 10:30 ` [PATCH v6 2/6] virt: tdx-guest: Give the Quote buffer an explicit type Peter Fang
2026-09-30 10:30 ` [PATCH v6 3/6] virt: tdx-guest: Calculate the Quote buffer size safely Peter Fang
2026-09-30 10:30 ` [PATCH v6 4/6] virt: tdx-guest: Add a helper for the Quote buffer size Peter Fang
2026-09-30 22:14   ` Edgecombe, Rick P
2026-09-30 22:52     ` Peter Fang [this message]
2026-09-30 22:58       ` Edgecombe, Rick P
2026-09-30 10:30 ` [PATCH v6 5/6] x86/tdx: Add a helper to query maximum Quote size Peter Fang
2026-09-30 10:30 ` [PATCH v6 6/6] virt: tdx-guest: Make the Quote buffer size dynamic Peter Fang
2026-09-30 10:49   ` sashiko-bot
2026-09-30 13:40     ` Peter Fang
2026-09-30 22:17 ` [PATCH v6 0/6] tdx-guest: Make " Edgecombe, Rick P
2026-09-30 22:54   ` 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=ar2Sn1ZiDQdygPPn@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@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.