All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Fang <peter.fang@intel.com>
To: Nikolay Borisov <nik.borisov@suse.com>
Cc: Xu Yilun <yilun.xu@linux.intel.com>, <kas@kernel.org>,
	<djbw@kernel.org>, <rick.p.edgecombe@intel.com>, <x86@kernel.org>,
	<linux-coco@lists.linux.dev>, <linux-kernel@vger.kernel.org>,
	<kvm@vger.kernel.org>, <sohil.mehta@intel.com>,
	<yilun.xu@intel.com>, <baolu.lu@linux.intel.com>,
	<zhenzhong.duan@intel.com>, <xiaoyao.li@intel.com>
Subject: Re: [RFC PATCH 09/15] x86/virt/tdx: Add interface to generate a Quote
Date: Mon, 6 Jul 2026 20:45:33 -0700	[thread overview]
Message-ID: <20260707034533.GD2169894@pedri> (raw)
In-Reply-To: <a8441214-1560-498d-ba01-0807502d0e28@suse.com>

On Wed, Jul 01, 2026 at 02:46:16PM +0300, Nikolay Borisov wrote:
> 
> 
> > @@ -1228,6 +1230,86 @@ bool tdx_quote_enabled(void)
> >   }
> >   EXPORT_SYMBOL_FOR_KVM(tdx_quote_enabled);
> > +#define QUOTE_ID_MASK		GENMASK_U64(47, 32)
> > +
> > +static u64 tdx_quote_get(struct tdx_td *td, u64 in_data_pa, u64 in_data_len,
> > +			 u64 hpa_list_pa, u64 total_len, u64 *quote_len)
> > +{
> > +	struct tdx_module_args args = {
> > +		.rcx = tdx_tdr_pa(td),
> > +		/* Don't bother specifying the quote id */
> > +		.rdx = QUOTE_ID_MASK & (u64)-1,
> 
> This is simply equal to QUOTE_ID_MASK, so why not create a special value
> meaning "ANY QUOTE" i.e
> 
> #define QUOTE_ID_MASK ....
> #define ANY_QUOTE QUOTE_ID_MASK
> 
> or some such .

I replaced it with just GENMASK_U64(47, 32) in the v2 series and added a
comment explaining it. QUOTE_ID_MASK isn't really needed since we don't
use any other Quote ID for this SEAMCALL. Hope this is clearer:

        struct tdx_module_args args = {
                .rcx = tdx_tdr_pa(td),
                /* [47:32] QUOTE_ID: All-1s selects the default quote format */
                .rdx = GENMASK_U64(47, 32),
                .r8 = in_data_pa,
                .r9 = in_data_len,
                .r10 = hpa_entries_pa,
                .r11 = total_len,
        };


> 
> > +		.r8 = in_data_pa,
> > +		.r9 = in_data_len,
> > +		.r10 = hpa_list_pa,
> > +		.r11 = total_len,
> > +	};
> > +	u64 r;
> > +
> > +	do {
> > +		r = seamcall_ret(TDH_QUOTE_GET, &args);
> > +	} while (r == TDX_INTERRUPTED_RESUMABLE);
> 
> 
> nit: This pattern seems to repeat a lot, might be worth it to consider
> introducing a wrapper similar to existing sc_retry?

I think Yilun gave some reasoning behind this in a separate reply:

https://lore.kernel.org/linux-coco/akaKmEZnTY4FO2gY@yilunxu-OptiPlex-7050/


> > +void *tdx_quote_generate(struct tdx_td *td, void *in_data, u32 in_data_len,
> > +			 u32 *quote_len)
> > +{
> > +	void *quote_dup = NULL;
> > +	u64 r, out_len;
> > +
> > +	if (!tdx_quote_enabled())
> > +		return NULL;
> > +
> > +	/* TDH.QUOTE.GET expects the input data to fit in a page */
> > +	if (in_data_len > PAGE_SIZE)
> > +		return NULL;
> > +
> > +	mutex_lock(&tdx_quote_lock);
> > +
> > +	/*
> > +	 * Use the first page of the quote buffer for input data. The buffer
> > +	 * must be at least one page in size. @in_data may not be page-aligned,
> > +	 * but TDH.QUOTE.GET expects page-aligned addresses.
> > +	 */
> > +	memcpy(quote_data.buf, in_data, (size_t)in_data_len);
> 
> Perhaps you can use min(PAGE_SIZE, in_data_len) and that way you can
> eliminate the in_data_len check above and copy up-to PAGE_SIZE data, if the
> data is longer - you will copy PAGE_SIZE which will likely result in error
> on generating the quote?

Oh that's an interesting idea. I'm going to change the implementation in
the upcoming v3 series and I'll see if using min() works. Thanks for the
suggestion.

> 

  parent reply	other threads:[~2026-07-07  3:45 UTC|newest]

Thread overview: 127+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-22  3:41 [PATCH 00/15] Enable TDX Module Extensions and DICE-based TDX Quoting Xu Yilun
2026-05-22  3:41 ` [PATCH 01/15] x86/virt/tdx: Read global metadata for TDX Module Extensions Xu Yilun
2026-05-25  6:24   ` Xiaoyao Li
2026-05-25  6:54   ` Xiaoyao Li
2026-05-27 15:35     ` Kiryl Shutsemau
2026-05-28  4:25       ` Xu Yilun
2026-05-28 21:17         ` Edgecombe, Rick P
2026-05-29 15:34           ` Xu Yilun
2026-05-27  6:05   ` Sohil Mehta
2026-05-27  7:11     ` Xu Yilun
2026-05-27 17:17       ` Sohil Mehta
2026-05-28  3:48         ` Xu Yilun
2026-05-28 21:00   ` Edgecombe, Rick P
2026-05-29 16:59     ` Xu Yilun
2026-06-09 13:06   ` Adrian Hunter
2026-06-10  3:20     ` Xu Yilun
2026-06-12 22:20   ` Dan Williams (nvidia)
2026-06-15 15:24     ` Xu Yilun
2026-06-15 16:05     ` Dave Hansen
2026-05-22  3:41 ` [PATCH 02/15] x86/virt/tdx: Add extra memory to TDX Module for Extensions Xu Yilun
2026-05-25  8:56   ` Xiaoyao Li
2026-05-27  3:47     ` Xu Yilun
2026-05-27  6:38       ` Xiaoyao Li
2026-05-27  7:32         ` Xu Yilun
2026-05-27  8:18           ` Xiaoyao Li
2026-06-07  4:38   ` Kishen Maloor
2026-06-08  9:41     ` Xu Yilun
2026-06-09 13:38   ` Adrian Hunter
2026-06-10  5:13     ` Xu Yilun
2026-06-10  5:43       ` Adrian Hunter
2026-06-10  7:44         ` Xu Yilun
2026-06-12 23:49   ` Dan Williams (nvidia)
2026-06-15 15:55     ` Xu Yilun
2026-05-22  3:41 ` [PATCH 03/15] x86/virt/tdx: Make TDX Module initialize Extensions Xu Yilun
2026-05-25  8:58   ` Xiaoyao Li
2026-06-05  8:46   ` Tony Lindgren
2026-06-09 15:14   ` Adrian Hunter
2026-06-10  8:09     ` Xu Yilun
2026-05-22  3:41 ` [PATCH 04/15] x86/virt/tdx: Enable the Extensions right after basic TDX Module init Xu Yilun
2026-05-25  6:00   ` Tony Lindgren
2026-05-27  4:02     ` Xu Yilun
2026-05-25  8:05   ` Xiaoyao Li
2026-05-28 21:32   ` Edgecombe, Rick P
2026-05-29 17:19     ` Xu Yilun
2026-06-07  4:38   ` Kishen Maloor
2026-06-08 10:12     ` Xu Yilun
2026-06-14  7:00       ` Peter Fang
2026-06-13  0:08   ` Dan Williams (nvidia)
2026-06-15 15:58     ` Xu Yilun
2026-05-22  3:41 ` [RFC PATCH 05/15] x86/virt/tdx: Move tdx_tdr_pa() up in the file Xu Yilun
2026-05-28 21:32   ` Edgecombe, Rick P
2026-06-11 16:21   ` Adrian Hunter
2026-06-14  7:04     ` Peter Fang
2026-05-22  3:41 ` [RFC PATCH 06/15] x86/virt/tdx: Initialize Quoting extension during bringup Xu Yilun
2026-05-28 21:35   ` Edgecombe, Rick P
2026-06-14  7:10     ` Peter Fang
2026-06-11 16:22   ` Adrian Hunter
2026-06-14  7:20     ` Peter Fang
2026-06-13  0:00   ` Dan Williams (nvidia)
2026-06-14  7:50     ` Peter Fang
2026-06-29 18:11       ` Edgecombe, Rick P
2026-07-02  9:48         ` Peter Fang
2026-05-22  3:41 ` [RFC PATCH 07/15] x86/virt/tdx: Prepare Quote buffer during extension bringup Xu Yilun
2026-05-28 22:30   ` Edgecombe, Rick P
2026-06-14 10:28     ` Peter Fang
2026-05-22  3:41 ` [RFC PATCH 08/15] x86/virt/tdx: Add interface to check Quoting availability Xu Yilun
2026-07-01 11:25   ` Nikolay Borisov
2026-07-02  0:19     ` Peter Fang
2026-05-22  3:41 ` [RFC PATCH 09/15] x86/virt/tdx: Add interface to generate a Quote Xu Yilun
2026-05-28 22:30   ` Edgecombe, Rick P
2026-06-14 11:29     ` Peter Fang
2026-06-26  9:58       ` Peter Fang
2026-06-11 17:15   ` Adrian Hunter
2026-06-14 11:36     ` Peter Fang
2026-07-01 11:46   ` Nikolay Borisov
2026-07-02 15:58     ` Xu Yilun
2026-07-07  3:45     ` Peter Fang [this message]
2026-05-22  3:41 ` [RFC PATCH 10/15] x86/tdx: Move and rename Quote request structure Xu Yilun
2026-06-11 17:16   ` Adrian Hunter
2026-06-14 11:50     ` Peter Fang
2026-06-13  0:04   ` Dan Williams (nvidia)
2026-06-14 11:51     ` Peter Fang
2026-05-22  3:41 ` [RFC PATCH 11/15] KVM: TDX: Factor out userspace return path from tdx_get_quote() Xu Yilun
2026-07-02 10:08   ` Nikolay Borisov
2026-07-07  5:01     ` Peter Fang
2026-05-22  3:41 ` [RFC PATCH 12/15] KVM: TDX: Add in-kernel Quote generation Xu Yilun
2026-06-13  0:20   ` Dan Williams (nvidia)
2026-06-14 11:57     ` Peter Fang
2026-07-02 15:26   ` Nikolay Borisov
2026-07-07  5:04     ` Peter Fang
2026-05-22  3:41 ` [RFC PATCH 13/15] KVM: TDX: Support event-notify interrupts only with userspace quoting Xu Yilun
2026-06-11 19:36   ` Adrian Hunter
2026-06-14 12:57     ` Peter Fang
2026-06-15  4:39       ` Adrian Hunter
2026-06-15 18:14         ` Peter Fang
2026-05-22  3:41 ` [RFC PATCH 14/15] x86/virt/tdx: Embed version info in SEAMCALL leaf function definitions Xu Yilun
2026-05-25  9:00   ` Xiaoyao Li
2026-05-27  6:45     ` Xu Yilun
2026-05-27  7:44       ` Xiaoyao Li
2026-05-27 11:45         ` Xu Yilun
2026-06-12  5:47   ` Adrian Hunter
2026-06-13 15:55     ` Xu Yilun
2026-05-22  3:41 ` [RFC PATCH 15/15] x86/virt/tdx: Enable TDX Quoting extension Xu Yilun
2026-05-25  5:17   ` Tony Lindgren
2026-05-25 10:51     ` Xiaoyao Li
2026-05-26  9:00       ` Tony Lindgren
2026-05-26 15:45       ` Xu Yilun
2026-05-27  1:30         ` Xiaoyao Li
2026-06-07  4:41   ` Kishen Maloor
2026-06-08 15:10     ` Xu Yilun
2026-07-03  7:57   ` Nikolay Borisov
2026-07-07  5:07     ` Peter Fang
2026-05-27  5:23 ` [PATCH 00/15] Enable TDX Module Extensions and DICE-based TDX Quoting Sohil Mehta
2026-05-27 10:38   ` Xu Yilun
2026-05-27 17:09     ` Sohil Mehta
2026-05-28  4:52       ` Xu Yilun
2026-05-28 19:50         ` Sohil Mehta
2026-06-01  9:36           ` Xu Yilun
2026-06-01 20:17             ` Sohil Mehta
2026-06-02  5:36               ` Xu Yilun
2026-06-07  4:36 ` Kishen Maloor
2026-06-08  6:54   ` Xu Yilun
2026-06-08 18:31 ` Adrian Hunter
2026-06-12 22:03 ` Dan Williams (nvidia)
2026-06-15 15:22   ` Xu Yilun
2026-06-15 15:57     ` Dave Hansen
2026-06-16 15:19       ` Xu Yilun

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=20260707034533.GD2169894@pedri \
    --to=peter.fang@intel.com \
    --cc=baolu.lu@linux.intel.com \
    --cc=djbw@kernel.org \
    --cc=kas@kernel.org \
    --cc=kvm@vger.kernel.org \
    --cc=linux-coco@lists.linux.dev \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nik.borisov@suse.com \
    --cc=rick.p.edgecombe@intel.com \
    --cc=sohil.mehta@intel.com \
    --cc=x86@kernel.org \
    --cc=xiaoyao.li@intel.com \
    --cc=yilun.xu@intel.com \
    --cc=yilun.xu@linux.intel.com \
    --cc=zhenzhong.duan@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.