The order of siblings in database:nova.compute_nodes.numa_topology is strange
I found the data in nova.compute_nodes.numa_topology is:
{"cells":
[{"nova_object.version": "1.2",
"nova_object.changes":
["cpu_usage", "memory_usage", "cpuset", "pinned_cpus", "siblings", "memory", "mempages", "id"],
"nova_object.name": "NUMACell",
"nova_object.data":
{"cpu_usage": 12, "memory_usage": 10240,
"cpuset": [3, 4, 5, 6, 7, 8, 9, 23, 24, 25, 26, 27, 28, 29],
"pinned_cpus": [3, 4, 5, 7, 8, 9, 23, 24, 25, 27, 28, 29],
"siblings": [[25, 5], [8, 28], [9, 29], [24, 4], [27, 7], [3, 23], [26, 6]],
"memory": 31884,
"mempages":
......
......
Which confused me is the siblings order: "siblings": [[25, 5], [8, 28], [9, 29], [24, 4], [27, 7], [3, 23], [26, 6]],
All the printout in the node shows:
root@compute-0-14:/var/lib/libvirt/images# lscpu | grep NUMA NUMA node(s): 2 NUMA node0 CPU(s): 0-9,20-29 NUMA node1 CPU(s): 10-19,30-39
capbilities shows, only 1 cell listed:
<topology>
<cells num='2'>
<cell id='0'>
<memory unit='KiB'>32649544</memory>
<pages unit='KiB' size='4'>7113810</pages>
<pages unit='KiB' size='2048'>512</pages>
<pages unit='KiB' size='1048576'>27</pages>
<distances>
<sibling id='0' value='10'/>
<sibling id='1' value='20'/>
</distances>
<cpus num='20'>
<cpu id='0' socket_id='0' core_id='0' siblings='0,20'/>
<cpu id='1' socket_id='0' core_id='1' siblings='1,21'/>
<cpu id='2' socket_id='0' core_id='2' siblings='2,22'/>
<cpu id='3' socket_id='0' core_id='3' siblings='3,23'/>
<cpu id='4' socket_id='0' core_id='4' siblings='4,24'/>
<cpu id='5' socket_id='0' core_id='8' siblings='5,25'/>
<cpu id='6' socket_id='0' core_id='9' siblings='6,26'/>
<cpu id='7' socket_id='0' core_id='10' siblings='7,27'/>
<cpu id='8' socket_id='0' core_id='11' siblings='8,28'/>
<cpu id='9' socket_id='0' core_id='12' siblings='9,29'/>
<cpu id='20' socket_id='0' core_id='0' siblings='0,20'/>
<cpu id='21' socket_id='0' core_id='1' siblings='1,21'/>
<cpu id='22' socket_id='0' core_id='2' siblings='2,22'/>
<cpu id='23' socket_id='0' core_id='3' siblings='3,23'/>
<cpu id='24' socket_id='0' core_id='4' siblings='4,24'/>
<cpu id='25' socket_id='0' core_id='8' siblings='5,25'/>
<cpu id='26' socket_id='0' core_id='9' siblings='6,26'/>
<cpu id='27' socket_id='0' core_id='10' siblings='7,27'/>
<cpu id='28' socket_id='0' core_id='11' siblings='8,28'/>
<cpu id='29' socket_id='0' core_id='12' siblings='9,29'/>
nova.conf is:
vcpu_pin_set="3-18,23-38"
So could some expert can tell me why the siblings is organized in this order? With all the input shows the CPU from small to big. Thanks.