On 5/30/22 15:09, Michal Prívozník wrote: > On 5/18/22 09:59, Haibin Huang wrote: >> > > Overall, these patches work. I've raised couple of points and for your > convenience you can find reworked patches here: > > https://gitlab.com/MichalPrivoznik/libvirt/-/commits/sgx_fixups/ > > Please see individual patches for comments. > So, now that I've cleaned up the code I can start to test it, but unfortunately, I don't have good news. It's not working. I've put the following into my domain XML: <memory model='sgx-epc'> <target> <size unit='KiB'>16384</size> </target> </memory> and this is the generated cmd line: -machine pc-i440fx-6.2,usb=off,dump-guest-core=off,sgx-epc.0.memdev=memepc0 \ -object '{"qom-type":"memory-backend-memfd","id":"memepc0","hugetlb":true,"hugetlbsize":2097152,"share":true,"prealloc":true,"prealloc-threads":16,"size":16777216,"host-nodes":[0],"policy":"bind"}' \ but if fails with: 2022-05-31T14:05:22.988793Z qemu-system-x86_64: Parameter 'sgx-epc.0.node' is missing Now, there are two problems here: 1) obviously, wrong backend was picked. But this is easy to solve - just move the if (mem->model == VIR_DOMAIN_MEMORY_MODEL_SGX_EPC) case in qemuBuildMemoryBackendProps() from the last patch before the memfd case. 2) apparently, .node attribute is required? Now, it's true that initially my guest has 2 NUMA nodes defined, but even after I remove those I still see the error. I believe I've raised this issue in one of earlier reviews: https://listman.redhat.com/archives/libvir-list/2022-February/228835.html Please make sure that in v13 this is addressed (even at expense of not working with QEMU-6.2.0 and requiring newer QEMU, if that's needed). Wasting precious reviewer bandwidth does not help anybody. Michal