Re: [PATCH v3 52/70] i386/tdx: handle TDG.VP.VMCALL

Xiaoyao Li
2023-12-07T07:38:43Z

On 12/1/2023 7:02 PM, Markus Armbruster wrote:
> Xiaoyao Li <xiaoyao.li@intel.com> writes:
>
>> From: Isaku Yamahata <isaku.yamahata@intel.com>
>>
>> For GetQuote, delegate a request to Quote Generation Service.
>> Add property "quote-generation-socket" to tdx-guest, whihc is a property
>> of type SocketAddress to specify Quote Generation Service(QGS).
>>
>> On request, connect to the QGS, read request buffer from shared guest
>> memory, send the request buffer to the server and store the response
>> into shared guest memory and notify TD guest by interrupt.
>>
>> command line example:
>> qemu-system-x86_64 \
>> -object '{"qom-type":"tdx-guest","id":"tdx0","quote-generation-socket":{"type": "vsock", "cid":"2","port":"1234"}}' \
>> -machine confidential-guest-support=tdx0
>>
>> Signed-off-by: Isaku Yamahata <isaku.yamahata@intel.com>
>> Codeveloped-by: Chenyi Qiang <chenyi.qiang@intel.com>
>> Signed-off-by: Chenyi Qiang <chenyi.qiang@intel.com>
>> Signed-off-by: Xiaoyao Li <xiaoyao.li@intel.com>
>> ---
>> Changes in v3:
>> - rename property "quote-generation-service" to "quote-generation-socket";
>> - change the type of "quote-generation-socket" from str to
>> SocketAddress;
>> - squash next patch into this one;
>> ---
>> qapi/qom.json | 5 +-
>> target/i386/kvm/tdx.c | 430 ++++++++++++++++++++++++++++++++++++++++++
>> target/i386/kvm/tdx.h | 6 +
>> 3 files changed, 440 insertions(+), 1 deletion(-)
>>
>> diff --git a/qapi/qom.json b/qapi/qom.json
>> index fd99aa1ff8cc..cf36a1832ddd 100644
>> --- a/qapi/qom.json
>> +++ b/qapi/qom.json
>> @@ -894,13 +894,16 @@
>> #
>> # @mrownerconfig: base64 MROWNERCONFIG SHA384 digest
>> #
>> +# @quote-generation-socket: socket address for Quote Generation Service(QGS)
>> +#
>
> Long line. Better:
>
> # @quote-generation-socket: socket address for Quote Generation
> # Service(QGS)

May I ask what's the limitation for qom.json? if 80 columns limitation
doesn't apply to it.

>> # Since: 8.2
>> ##
>> { 'struct': 'TdxGuestProperties',
>> 'data': { '*sept-ve-disable': 'bool',
>> '*mrconfigid': 'str',
>> '*mrowner': 'str',
>> - '*mrownerconfig': 'str' } }
>> + '*mrownerconfig': 'str',
>> + '*quote-generation-socket': 'SocketAddress' } }
>>
>> ##
>> # @ThreadContextProperties:
>