Il 04/12/2013 08:58, Wanlong Gao ha scritto:
> According to this patch set, we are able to set guest nodes memory policy
> like following:
> 
>  -numa node,nodeid=0,cpus=0, \
>  -numa mem,size=1024M,policy=membind,host-nodes=0-1 \
>  -numa node,nodeid=1,cpus=1 \
>  -numa mem,size=1024M,policy=interleave,host-nodes=1
> 
> This supports 
> "policy={default|membind|interleave|preferred},relative=true,host-nodes=N-N" 
> like format.
> 
> And add a QMP command "query-numa" to show numa info through
> this API.

Marcelo, I'm afraid that these NUMA settings complicate getting properly
aligned pages.  If you do something like this:

  -numa node,nodeid=0,cpus=0, \
  -numa mem,size=4096M,policy=membind,host-nodes=0 \
  -numa node,nodeid=1,cpus=1 \
  -numa mem,size=4096M,policy=membind,host-nodes=1

You'll have with your patches (without them it's worse of course):

   RAM offset    physical address   node 0
   0-3840M       0-3840M            host node 0
   4096M-4352M   4096M-4352M        host node 0
   4352M-8192M   4352M-8192M        host node 1
   3840M-4096M   8192M-8448M        host node 1

So only 0-3G and 5-8G are aligned, 3G-5G and 8G-8.25G cannot use
gigabyte pages because they are split across host nodes.

So rather than your patches, it seems simpler to just widen the PCI hole
to 1G for i440FX and 2G for q35.

What do you think?

Paolo

Reply via email to