The order of siblings in database:nova.compute_nodes.numa_topology is strange

asked 2016-06-29 08:14:10 -0600

updated 2016-06-29 10:47:48 -0600

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.

edit retag flag offensive close merge delete