[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v3 3/5] numa: Support SGX numa in the monitor and Libvirt int
From: |
Eric Blake |
Subject: |
Re: [PATCH v3 3/5] numa: Support SGX numa in the monitor and Libvirt interfaces |
Date: |
Wed, 10 Nov 2021 10:55:40 -0600 |
User-agent: |
NeoMutt/20211029-16-b680fe |
On Mon, Nov 01, 2021 at 12:20:07PM -0400, Yang Zhong wrote:
> Add the SGXEPCSection list into SGXInfo to show the multiple
> SGX EPC sections detailed info, not the total size like before.
> This patch can enable numa support for 'info sgx' command and
> QMP interfaces. The new interfaces show each EPC section info
> in one numa node. Libvirt can use QMP interface to get the
> detailed host SGX EPC capabilities to decide how to allocate
> host EPC sections to guest.
>
> (qemu) info sgx
> SGX support: enabled
> SGX1 support: enabled
> SGX2 support: enabled
> FLC support: enabled
> NUMA node #0: size=67108864
> NUMA node #1: size=29360128
>
> The QMP interface show:
> (QEMU) query-sgx
> {"return": {"sgx": true, "sgx2": true, "sgx1": true, "sections": \
> [{"node": 0, "size": 67108864}, {"node": 1, "size": 29360128}], "flc": true}}
>
> (QEMU) query-sgx-capabilities
> {"return": {"sgx": true, "sgx2": true, "sgx1": true, "sections": \
> [{"node": 0, "size": 17070817280}, {"node": 1, "size": 17079205888}], "flc":
> true}}
Other than the different "size" values, how do these commands differ?
>
> Signed-off-by: Yang Zhong <yang.zhong@intel.com>
> ---
> qapi/misc-target.json | 19 ++++++++++++++--
> hw/i386/sgx.c | 51 +++++++++++++++++++++++++++++++++++--------
> 2 files changed, 59 insertions(+), 11 deletions(-)
>
> diff --git a/qapi/misc-target.json b/qapi/misc-target.json
> index 5aa2b95b7d..1022aa0184 100644
> --- a/qapi/misc-target.json
> +++ b/qapi/misc-target.json
> @@ -337,6 +337,21 @@
> 'if': 'TARGET_ARM' }
>
>
> +##
> +# @SGXEPCSection:
> +#
> +# Information about intel SGX EPC section info
> +#
> +# @node: the numa node
> +#
> +# @size: the size of epc section
> +#
> +# Since: 6.2
Are we still trying to cram this into 6.2, or is now slipping into 7.0?
> +##
> +{ 'struct': 'SGXEPCSection',
> + 'data': { 'node': 'int',
> + 'size': 'uint64'}}
> +
> ##
> # @SGXInfo:
> #
> @@ -350,7 +365,7 @@
> #
> # @flc: true if FLC is supported
> #
> -# @section-size: The EPC section size for guest
> +# @sections: The EPC sections info for guest
> #
> # Since: 6.2
> ##
> @@ -359,7 +374,7 @@
> 'sgx1': 'bool',
> 'sgx2': 'bool',
> 'flc': 'bool',
> - 'section-size': 'uint64'},
> + 'sections': ['SGXEPCSection']},
This would be an incompatible change. As long as 6.2 isn't released,
we can do that; but once it is, we need to be more careful about
changing the QMP spec.
> 'if': 'TARGET_I386' }
>
> ##
> diff --git a/hw/i386/sgx.c b/hw/i386/sgx.c
> index 9a77519609..b5b710a556 100644
> --- a/hw/i386/sgx.c
> +++ b/hw/i386/sgx.c
> @@ -76,11 +76,13 @@ static uint64_t sgx_calc_section_metric(uint64_t low,
> uint64_t high)
> ((high & MAKE_64BIT_MASK(0, 20)) << 32);
> }
>
> -static uint64_t sgx_calc_host_epc_section_size(void)
> +static SGXEPCSectionList *sgx_calc_host_epc_sections(void)
...
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3266
Virtualization: qemu.org | libvirt.org
[PATCH v3 4/5] doc: Add the SGX numa description, Yang Zhong, 2021/11/01
[PATCH v3 5/5] sgx: Reset the vEPC regions during VM reboot, Yang Zhong, 2021/11/01
Re: [PATCH v3 0/5] SGX NUMA support plus vepc reset, Paolo Bonzini, 2021/11/10