Re: [PATCH v3 4/4] platform/x86: intel_tdx_attest: Add TDX Guest attestation interface driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 4/20/22 11:57 PM, Isaku Yamahata wrote:
On Wed, Apr 20, 2022 at 07:42:06PM -0700,
Sathyanarayanan Kuppuswamy <sathyanarayanan.kuppuswamy@xxxxxxxxxxxxxxx> wrote:



On 4/20/22 5:11 PM, Kai Huang wrote:
On Wed, 2022-04-20 at 16:45 -0700, Sathyanarayanan Kuppuswamy wrote:
If we want to support multiple GetQuote requests in parallel, then we
need some way to uniquely identify the GetQuote requests. So that when
we get completion notification, we can understand which request is
completed. This part is not mentioned/discussed in ABI spec. So we want
to serialize the requests for now.


Yes it's unfortunate that this part (whether concurrent GetQuote requests are
supported by TDX architecture) is not explicitly mentioned in GHCI spec.  I am
fine with only supporting GetQuote requests one by one.  AFAICT there's no
request to support concurrent GetQuote requests anyway.  What concerns me is
exactly how explain this.

As I said, we have GET_QUOTE_IN_FLIGHT flag now.  Theoretically, you can queue
multiple GetQuote requests, and when you receive the interrupt, you check which
buffer has GET_QUOTE_IN_FLIGHT cleared.  That buffer is the one with Quote
ready.  However I am not 100% sure whether above will always work.  Interrupt
can get lost when there are multiple Quotes ready in multiple buffer in very
short time period, etc?  Perhaps Isaku can provide more input here.

Either supported or not, it should be mentioned in the GHCI spec. Currently,
there are no details related to it. If it is supported, the specification
should include the protocol to use.

I will check with Isaku about it.

The spec says that TD can call multiple GetQuote requests in parallel.

Sorry, I missed the above content. Thanks for pointing out.


   TDG.VP.VMCALL<GetQuote> API allows one TD to issue multiple requests. It's
   implementation specific that how many concurrent requests are allowed. The TD
   should be able to handle TDG.VP.VMCALL_RETRY if it chooses to issue multiple
   requests simultaneously

Do you know why we should handle VMCALL_RETRY case? IIUC, as per
above spec, if each request we send uses different GPA buffer, then we
should not even worry about checking for IN_FLIGHT status. right?


As Kai said, there is no requirement for multiple GetQuote in parallel, it's
okay to support only single request at the same time.

For now I will leave it as single request at a time.


While the status is GET_QUOTE_IN_FLIGHT, VMM owns the shared GPA.  The
attestation driver should wait for GET_QUOTE_IN_FLIGHT to be cleared before
sending next request.

--
Sathyanarayanan Kuppuswamy
Linux Kernel Developer



[Index of Archives]     [Linux Kernel Development]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux