On 8/22/22 06:34, Yang, Lin A wrote: > > @Michal, do you have any updated for v14 patches? If yes, I can rework on > > top of your changes and submit for review. > > https://gitlab.com/MichalPrivoznik/libvirt/-/commits/sgx_rework > <https://gitlab.com/MichalPrivoznik/libvirt/-/commits/sgx_rework> ? It's sgx_rework_v2 but it hasn't worked all Peter's suggestion in, yet. Anyway, I've experimented with plain QEMU a bit (I think Peter asked this somewhere in the review) and the way SGX works is by using a memory that QEMU already has, e.g.: ./qemu-system-x86_64 \ -S \ -machine pc-q35-6.2,usb=off,dump-guest-core=off,sgx-epc.0.memdev=memepc0,sgx-epc.0.node=0,sgx-epc.1.memdev=memepc1,sgx-epc.1.node=0 \ -accel tcg \ -cpu qemu64 \ -m 128 \ -device virtio-balloon-pci,id=balloon0 \ -object '{"qom-type":"memory-backend-epc","id":"memepc0","prealloc":true,"size":67108864}' \ -object '{"qom-type":"memory-backend-epc","id":"memepc1","prealloc":true,"size":167}' \ -qmp stdio {"QMP": {"version": {"qemu": {"micro": 93, "minor": 0, "major": 7}, "package": "v7.1.0-rc3-30-g08eb7aa318"}, "capabilities": ["oob"]}} {"execute":"qmp_capabilities"} {"return": {}} {"execute":"query-memory-size-summary"} {"return": {"base-memory": 134217728, "plugged-memory": 0}} {"execute":"query-balloon"} {"return": {"actual": 134217728}} {"execute":"query-memory-devices"} {"return": [{"type": "sgx-epc", "data": {"memdev": "/objects/memepc0", "memaddr": 4294967296, "size": 67108864, "node": 0}}, {"type": "sgx-epc", "data": {"memdev": "/objects/memepc1", "memaddr": 4362076160, "size": 167, "node": 0}}]} {"execute":"query-memdev"} {"return": [{"share": true, "reserve": true, "prealloc": true, "host-nodes": [], "size": 167, "merge": false, "dump": false, "policy": "default", "id": "memepc1"}, {"share": false, "reserve": true, "prealloc": false, "host-nodes": [], "size": 134217728, "merge": true, "dump": false, "policy": "default", "id": "pc.ram"}, {"share": true, "reserve": true, "prealloc": true, "host-nodes": [], "size": 67108864, "merge": false, "dump": false, "policy": "default", "id": "memepc0"}]} IOW, it looks like memory-backend-epc does not add any additional memory (like other backends do). Therefore I'm not sure whether <memory/> device is the right element to represent this, but I don't have a good alternative either. Feel free to take my patches and rework them as I'll be traveling in near future and might not get enough time to work on this. Michal