[libvirt][PATCH v15 7/9] qemu_namespace: Create SGX related nodes in domain's namespace

Lin Yang lin.a.yang at intel.com
Wed Aug 31 07:40:39 UTC 2022


From: Michal Privoznik <mprivozn at redhat.com>

This is similar to the previous commit. SGX memory backend needs
to access /dev/sgx_vepc and /dev/sgx_provision. Create these
nodes in domain's private /dev when required by domain's config.

Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
Signed-off-by: Haibin Huang <haibin.huang at intel.com>
---
 src/qemu/qemu_namespace.c | 20 ++++++++++++++++----
 1 file changed, 16 insertions(+), 4 deletions(-)

diff --git a/src/qemu/qemu_namespace.c b/src/qemu/qemu_namespace.c
index 98cd794666..8fba39a690 100644
--- a/src/qemu/qemu_namespace.c
+++ b/src/qemu/qemu_namespace.c
@@ -350,11 +350,23 @@ static int
 qemuDomainSetupMemory(virDomainMemoryDef *mem,
                       GSList **paths)
 {
-    if (mem->model != VIR_DOMAIN_MEMORY_MODEL_NVDIMM &&
-        mem->model != VIR_DOMAIN_MEMORY_MODEL_VIRTIO_PMEM)
-        return 0;
+    switch (mem->model) {
+    case VIR_DOMAIN_MEMORY_MODEL_NVDIMM:
+    case VIR_DOMAIN_MEMORY_MODEL_VIRTIO_PMEM:
+        *paths = g_slist_prepend(*paths, g_strdup(mem->nvdimmPath));
+        break;
+
+    case VIR_DOMAIN_MEMORY_MODEL_SGX_EPC:
+        *paths = g_slist_prepend(*paths, g_strdup(QEMU_DEV_SGX_VEPVC));
+        *paths = g_slist_prepend(*paths, g_strdup(QEMU_DEV_SGX_PROVISION));
+        break;
 
-    *paths = g_slist_prepend(*paths, g_strdup(mem->nvdimmPath));
+    case VIR_DOMAIN_MEMORY_MODEL_NONE:
+    case VIR_DOMAIN_MEMORY_MODEL_DIMM:
+    case VIR_DOMAIN_MEMORY_MODEL_VIRTIO_MEM:
+    case VIR_DOMAIN_MEMORY_MODEL_LAST:
+        break;
+    }
 
     return 0;
 }
-- 
2.25.1



More information about the libvir-list mailing list