
On 10/14/22 13:12, Michal Prívozník wrote:
On 10/8/22 06:00, Lin Yang wrote:
With NUMA config:
<devices> ... <memory model='sgx-epc'> <source> <nodemask>0-1</nodemask> </source> <target> <size unit='KiB'>512</size> <node>0</node> </target> </memory> ... </devices>
Without NUMA config:
<devices> ... <memory model='sgx-epc'> <target> <size unit='KiB'>512</size> </target> </memory> ... </devices>
Patches look good to me. And I'd like to merge them. However, in one of previous iterations Peter raised a concern whether this should be exposed as something else than <memory model='sgx-epc'/>. One fact that would support this is that SGX 'cuts' from guest memory. I mean, memory backend-epc does not add more RAM into the guest:
# ./qemu-system-x86_64 -S -nographic -nodefaults -m 128 \ -machine pc,sgx-epc.0.memdev=memepc0,sgx-epc.0.node=0 \ -object '{"qom-type":"memory-backend-epc","id":"memepc0","prealloc":true,"size":67108864,"host-nodes":[0],"policy":"bind"}' \ -monitor stdio QEMU 7.1.50 monitor - type 'help' for more information (qemu) info memory-devices Memory device [sgx-epc]: "" memaddr: 0x100000000 size: 67108864 node: 0 memdev: /objects/memepc0 (qemu) info memory_size_summary base memory: 134217728 plugged memory: 0 (qemu)
Which is also the reason why we need to special case VIR_DOMAIN_MEMORY_MODEL_SGX_EPC so much.
On the other hand, the fact that QEMU exposes it as a memory backend means, that it kind of falls into <memory/> category.
So my question then is, Peter, are you okay with leaving this under <memory/> or do you have other suggestion?
Maybe Dan can help us here? Michal