1. 06 6月, 2014 11 次提交
  2. 05 6月, 2014 2 次提交
  3. 04 6月, 2014 4 次提交
    • M
      virnuma: Check for numa_bitmask_isbitset presence · 9e0cbcd8
      Michal Privoznik 提交于
      On some systems, libnuma can be present but it's so ancient that
      it misses some symbols that virNumaGetDistances() needs. To be
      more precise: numa_bitmask_isbitset() and numa_nodes_ptr are the
      symbols in question. Fortunately, they were both introduced in
      the same release so it's sufficient for us to check for only one
      of them. And the winner is numa_bitmask_isbitset().
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      9e0cbcd8
    • M
      virnuma: Implement virNumaGetDistances stub for non-NUMA · 3289edd2
      Michal Privoznik 提交于
      In case the libvirt is built without numactl support, we're
      missing the virNumaGetDistances() stub so the linking fails:
      
        CCLD     libvirt_lxc
      libvirt_lxc-nodeinfo.o: In function `virNodeCapsGetSiblingInfo':
      /home/zippy/tmp/libvirt.git/src/nodeinfo.c:1763: undefined reference to `virNumaGetDistances'
      collect2: error: ld returned 1 exit status
      make[3]: *** [libvirt_lxc] Error 1
      
      The issue was introduced in 77c830d8.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      3289edd2
    • M
      virCaps: Expose distance between host NUMA nodes · 8ba0a58f
      Michal Privoznik 提交于
      If user or management application wants to create a guest,
      it may be useful to know the cost of internode latencies
      before the guest resources are pinned. For example:
      
      <capabilities>
      
        <host>
          ...
          <topology>
            <cells num='2'>
              <cell id='0'>
                <memory unit='KiB'>4004132</memory>
                <distances>
                  <sibling id='0' value='10'/>
                  <sibling id='1' value='20'/>
                </distances>
                <cpus num='2'>
                  <cpu id='0' socket_id='0' core_id='0' siblings='0'/>
                  <cpu id='2' socket_id='0' core_id='2' siblings='2'/>
                </cpus>
              </cell>
              <cell id='1'>
                <memory unit='KiB'>4030064</memory>
                <distances>
                  <sibling id='0' value='20'/>
                  <sibling id='1' value='10'/>
                </distances>
                <cpus num='2'>
                  <cpu id='1' socket_id='0' core_id='0' siblings='1'/>
                  <cpu id='3' socket_id='0' core_id='2' siblings='3'/>
                </cpus>
              </cell>
            </cells>
          </topology>
          ...
        </host>
        ...
      </capabilities>
      
      We can see the distance from node1 to node0 is 20 and within nodes 10.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      8ba0a58f
    • M
      virnuma: Introduce virNumaGetDistances · 77c830d8
      Michal Privoznik 提交于
      The API gets a NUMA node and find distances to other nodes.  The
      distances are returned in an array. If an item X within the array
      equals to value of zero, then there's no such node as X.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      77c830d8
  4. 03 6月, 2014 23 次提交