1. 01 12月, 2017 2 次提交
    • J
      conf: Clean up virDomainNumaDefCPUFormatXML · ac6cc1d8
      John Ferlan 提交于
      Don't use a unary comparison for an int value - compare against zero
      directly instead.
      ac6cc1d8
    • J
      conf: Clean up virDomainNumaDefNodeDistanceParseXML · 742494ee
      John Ferlan 提交于
      Clean up the style a bit w/r/t to not using a unary operator on an
      integer value that could be zero - compare vs. zero instead.
      
      Set the def->mem_nodes[*].distances to rdist or ldist inside the
      if condition - no need to set outside since the value being set
      to is what was fetched.
      
      During cleanup, be sure to initialize the ndistances on error and
      use the < 0 comparison not the unary one.
      742494ee
  2. 23 11月, 2017 2 次提交
  3. 13 11月, 2017 2 次提交
    • W
      xenconfig: add domxml conversions for xen-xl · 03d0959a
      Wim ten Have 提交于
      This patch converts NUMA configurations between the Xen libxl
      configuration file format and libvirt's XML format.
      
      XML HVM domain on a 4 node (2 cores/socket) configuration:
      
        <cpu>
          <numa>
            <cell id='0' cpus='0-1' memory='2097152' unit='KiB'>
              <distances>
                <sibling id='0' value='10'/>
                <sibling id='1' value='21'/>
                <sibling id='2' value='31'/>
                <sibling id='3' value='21'/>
              </distances>
            </cell>
            <cell id='1' cpus='2-3' memory='2097152' unit='KiB'>
              <distances>
                <sibling id='0' value='21'/>
                <sibling id='1' value='10'/>
                <sibling id='2' value='21'/>
                <sibling id='3' value='31'/>
              </distances>
            </cell>
            <cell id='2' cpus='3-4' memory='2097152' unit='KiB'>
              <distances>
                <sibling id='0' value='31'/>
                <sibling id='1' value='21'/>
                <sibling id='2' value='10'/>
                <sibling id='3' value='21'/>
              </distances>
            </cell>
            <cell id='3' cpus='5-6' memory='2097152' unit='KiB'>
              <distances>
                <sibling id='0' value='21'/>
                <sibling id='1' value='31'/>
                <sibling id='2' value='21'/>
                <sibling id='3' value='10'/>
              </distances>
            </cell>
          </numa>
        </cpu>
      
      Xen xl.cfg domain configuration:
      
        vnuma = [["pnode=0","size=2048","vcpus=0-1","vdistances=10,21,31,21"],
                 ["pnode=1","size=2048","vcpus=2-3","vdistances=21,10,21,31"],
                 ["pnode=2","size=2048","vcpus=4-5","vdistances=31,21,10,21"],
                 ["pnode=3","size=2048","vcpus=6-7","vdistances=21,31,21,10"]]
      
      If there is no XML <distances> description amongst the <cell> data the
      conversion schema from xml to native will generate 10 for local and 20
      for all remote instances.
      Signed-off-by: NWim ten Have <wim.ten.have@oracle.com>
      Reviewed-by: NJim Fehlig <jfehlig@suse.com>
      Signed-off-by: NJim Fehlig <jfehlig@suse.com>
      03d0959a
    • W
      numa: describe siblings distances within cells · 74119a03
      Wim ten Have 提交于
      Add support for describing NUMA distances in a domain's <numa> <cell>
      XML description.
      
      Below is an example of a 4 node setup:
      
        <cpu>
          <numa>
            <cell id='0' cpus='0-3' memory='2097152' unit='KiB'>
              <distances>
                <sibling id='0' value='10'/>
                <sibling id='1' value='21'/>
                <sibling id='2' value='31'/>
                <sibling id='3' value='21'/>
              </distances>
            </cell>
            <cell id='1' cpus='4-7' memory='2097152' unit='KiB'>
              <distances>
                <sibling id='0' value='21'/>
                <sibling id='1' value='10'/>
                <sibling id='2' value='21'/>
                <sibling id='3' value='31'/>
              </distances>
            </cell>
            <cell id='2' cpus='8-11' memory='2097152' unit='KiB'>
              <distances>
                <sibling id='0' value='31'/>
                <sibling id='1' value='21'/>
                <sibling id='2' value='10'/>
                <sibling id='3' value='21'/>
              </distances>
            <cell id='3' cpus='12-15' memory='2097152' unit='KiB'>
              <distances>
                <sibling id='0' value='21'/>
                <sibling id='1' value='31'/>
                <sibling id='2' value='21'/>
                <sibling id='3' value='10'/>
              </distances>
            </cell>
          </numa>
        </cpu>
      
      A <cell> defines a NUMA node. <distances> describes the NUMA distance
      from the <cell> to the other NUMA nodes (the <sibling>s).  For example,
      in above XML description, the distance between NUMA node0 <cell id='0'
      ...> and NUMA node2 <sibling id='2' ...> is 31.
      
      Valid distance values are '10 <= value <= 255'.  A distance value of 10
      represents the distance to the node itself.  A distance value of 20
      represents the default value for remote nodes but other values are
      possible depending on the physical topology of the system.
      
      When distances are not fully described, any missing sibling distance
      values will default to 10 for local nodes and 20 for remote nodes.
      
      If distance is given for A -> B, then we default B -> A to the same
      value instead of 20.
      Signed-off-by: NWim ten Have <wim.ten.have@oracle.com>
      Reviewed-by: NDaniel P. Berrange <berrange@redhat.com>
      Signed-off-by: NJim Fehlig <jfehlig@suse.com>
      74119a03
  4. 07 10月, 2017 1 次提交
  5. 09 2月, 2017 1 次提交
  6. 20 6月, 2016 1 次提交
  7. 03 3月, 2016 1 次提交
    • M
      Drop inline keyword from some functions. · be8b536a
      Michal Privoznik 提交于
      While trying to build with -Os I've encountered some build
      failures.
      
      util/vircommand.c: In function 'virCommandAddEnvFormat':
      util/vircommand.c:1257:1: error: inlining failed in call to 'virCommandAddEnv': call is unlikely and code size would grow [-Werror=inline]
       virCommandAddEnv(virCommandPtr cmd, char *env)
       ^
      util/vircommand.c:1308:5: error: called from here [-Werror=inline]
           virCommandAddEnv(cmd, env);
           ^
      This function is big enough for the compiler to be not inlined.
      This is the error message I'm seeing:
      
      Then virDomainNumatuneNodeSpecified is exported and called from
      other places. It shouldn't be inlined then.
      
      In file included from network/bridge_driver_platform.h:30:0,
                       from network/bridge_driver_platform.c:26:
      network/bridge_driver_linux.c: In function 'networkRemoveRoutingFirewallRules':
      ./conf/network_conf.h:350:1: error: inlining failed in call to 'virNetworkDefForwardIf.constprop': call is unlikely and code size would grow [-Werror=inline]
       virNetworkDefForwardIf(const virNetworkDef *def, size_t n)
       ^
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      be8b536a
  8. 08 9月, 2015 1 次提交
  9. 07 8月, 2015 1 次提交
    • M
      numa_conf: Introduce virDomainNumaGetMaxCPUID · 8f2535de
      Michal Privoznik 提交于
      This function should return the greatest CPU number set in
      /domain/cpu/numa/cell/@cpus. The idea is that we should compare
      the returned value against /domain/vcpu value. Yes, there exist
      users who think the following is a good idea:
      
        <vcpu placement='static'>4</vcpu>
        <cpu mode='host-model'>
          <model fallback='allow'/>
          <numa>
            <cell id='0' cpus='0-1' memory='1048576' unit='KiB'/>
            <cell id='1' cpus='9-10' memory='2097152' unit='KiB'/>
          </numa>
        </cpu>
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      8f2535de
  10. 20 5月, 2015 1 次提交
  11. 05 5月, 2015 1 次提交
    • L
      conf: Add the cpu duplicate use check for vm numa settings · 8fedbbdb
      Luyao Huang 提交于
      https://bugzilla.redhat.com/show_bug.cgi?id=1176020
      
      We had a check for the vcpu count total number in <numa>
      before, however this check is not good enough. There are
      some examples:
      
      1. one of cpu id is out of maxvcpus, can set success(cpu count = 5 < 10):
      
      <vcpu placement='static'>10</vcpu>
      <cell id='0' cpus='0-3,100' memory='512000' unit='KiB'/>
      
      2. use the same cpu in 2 cell, can set success(cpu count = 8 < 10):
      <vcpu placement='static'>10</vcpu>
      <cell id='0' cpus='0-3' memory='512000' unit='KiB'/>
      <cell id='1' cpus='0-3' memory='512000' unit='KiB'/>
      
      3. use the same cpu in 2 cell, cannot set success(cpu count = 11 > 10):
      <vcpu placement='static'>10</vcpu>
      <cell id='0' cpus='0-6' memory='512000' unit='KiB'/>
      <cell id='1' cpus='0-3' memory='512000' unit='KiB'/>
      
      Add a check for numa cpus, check if duplicate use one cpu in more
      than one cell.
      Signed-off-by: NLuyao Huang <lhuang@redhat.com>
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      8fedbbdb
  12. 13 4月, 2015 1 次提交
  13. 24 3月, 2015 1 次提交
  14. 02 3月, 2015 1 次提交
  15. 21 2月, 2015 21 次提交
  16. 17 2月, 2015 1 次提交
  17. 31 1月, 2015 1 次提交