On Thu, Sep 09, 2021 at 11:36:58AM +0200, Philippe Mathieu-Daudé wrote: > On 9/9/21 4:51 AM, Yang Zhong wrote: > > On Wed, Sep 08, 2021 at 10:38:59AM +0200, Philippe Mathieu-Daudé wrote: > >> On 9/8/21 10:19 AM, Yang Zhong wrote: > >>> Libvirt can use qmp_query_sgx_capabilities() to get the host > >>> sgx capabilities. > >>> > >>> Signed-off-by: Yang Zhong <yang.zh...@intel.com> > >>> --- > >>> hw/i386/sgx.c | 66 ++++++++++++++++++++++++++++++++++++++ > >>> include/hw/i386/sgx.h | 1 + > >>> qapi/misc-target.json | 18 +++++++++++ > >>> target/i386/monitor.c | 5 +++ > >>> tests/qtest/qmp-cmd-test.c | 1 + > >>> 5 files changed, 91 insertions(+) > >> > >>> +SGXInfo *sgx_get_capabilities(Error **errp) > >>> +{ > >>> + SGXInfo *info = NULL; > >>> + uint32_t eax, ebx, ecx, edx; > >>> + > >>> + int fd = qemu_open_old("/dev/sgx_vepc", O_RDWR); > >>> + if (fd < 0) { > >>> + error_setg(errp, "SGX is not enabled in KVM"); > >>> + return NULL; > >>> + } > >> > >> Is this Linux specific? > > > > Philippe, The /dev/sgx_vepc node is used for KVM side to expose the SGX > > EPC section to guest. Libvirt then use the '-machine none' qemu command > > to query host SGX capabilities(especially for host SGX EPC section size) > > to decide how many SGX VMs will be started in server. If this node doesn't > > exist, the reason is host can't support SGX or SGX KVM module is not > > compiled > > in the kernel. thanks! > > Sorry but you didn't answer my question in an obvious way... Yes or no?
Yes, this is Linux specific. thanks! Yang