mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-05 16:53:55 -06:00
qapi: Cleanup SGX related comments and restore @section-size
The SGX NUMA patches were merged into Qemu 7.0 release, we need clarify detailed version history information and also change some related comments, which make SGX related comments clearer. The QMP command schema promises backwards compatibility as standard. We temporarily restore "@section-size", which can avoid incompatible API breakage. The "@section-size" will be deprecated in 7.2 version. Suggested-by: Daniel P. Berrangé <berrange@redhat.com> Signed-off-by: Yang Zhong <yang.zhong@intel.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Message-Id: <20220120223104.437161-1-yang.zhong@intel.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
d316859f4e
commit
a66bd91f03
4 changed files with 41 additions and 9 deletions
|
@ -83,7 +83,7 @@ static uint64_t sgx_calc_section_metric(uint64_t low, uint64_t high)
|
|||
((high & MAKE_64BIT_MASK(0, 20)) << 32);
|
||||
}
|
||||
|
||||
static SGXEPCSectionList *sgx_calc_host_epc_sections(void)
|
||||
static SGXEPCSectionList *sgx_calc_host_epc_sections(uint64_t *size)
|
||||
{
|
||||
SGXEPCSectionList *head = NULL, **tail = &head;
|
||||
SGXEPCSection *section;
|
||||
|
@ -106,6 +106,7 @@ static SGXEPCSectionList *sgx_calc_host_epc_sections(void)
|
|||
section = g_new0(SGXEPCSection, 1);
|
||||
section->node = j++;
|
||||
section->size = sgx_calc_section_metric(ecx, edx);
|
||||
*size += section->size;
|
||||
QAPI_LIST_APPEND(tail, section);
|
||||
}
|
||||
|
||||
|
@ -156,6 +157,7 @@ SGXInfo *qmp_query_sgx_capabilities(Error **errp)
|
|||
{
|
||||
SGXInfo *info = NULL;
|
||||
uint32_t eax, ebx, ecx, edx;
|
||||
uint64_t size = 0;
|
||||
|
||||
int fd = qemu_open_old("/dev/sgx_vepc", O_RDWR);
|
||||
if (fd < 0) {
|
||||
|
@ -173,7 +175,8 @@ SGXInfo *qmp_query_sgx_capabilities(Error **errp)
|
|||
info->sgx1 = eax & (1U << 0) ? true : false;
|
||||
info->sgx2 = eax & (1U << 1) ? true : false;
|
||||
|
||||
info->sections = sgx_calc_host_epc_sections();
|
||||
info->sections = sgx_calc_host_epc_sections(&size);
|
||||
info->section_size = size;
|
||||
|
||||
close(fd);
|
||||
|
||||
|
@ -220,12 +223,14 @@ SGXInfo *qmp_query_sgx(Error **errp)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
SGXEPCState *sgx_epc = &pcms->sgx_epc;
|
||||
info = g_new0(SGXInfo, 1);
|
||||
|
||||
info->sgx = true;
|
||||
info->sgx1 = true;
|
||||
info->sgx2 = true;
|
||||
info->flc = true;
|
||||
info->section_size = sgx_epc->size;
|
||||
info->sections = sgx_get_epc_sections_list();
|
||||
|
||||
return info;
|
||||
|
@ -249,6 +254,8 @@ void hmp_info_sgx(Monitor *mon, const QDict *qdict)
|
|||
info->sgx2 ? "enabled" : "disabled");
|
||||
monitor_printf(mon, "FLC support: %s\n",
|
||||
info->flc ? "enabled" : "disabled");
|
||||
monitor_printf(mon, "size: %" PRIu64 "\n",
|
||||
info->section_size);
|
||||
|
||||
section_list = info->sections;
|
||||
for (section = section_list; section; section = section->next) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue