1. 06 6月, 2014 16 次提交
  2. 05 6月, 2014 6 次提交
    • M
      formatcaps: Rework and add stubs to document · e9f4729a
      Michal Privoznik 提交于
      At the moment we are missing even basic documentation on our
      capabilities XML. Without demand on completeness, I'm
      reorganizing the document structure and adding very basic
      documentation to two major components of the capabilities XML.
      These stubs are intended to be enhanced in the future.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      e9f4729a
    • M
      vircaps2xmltest: Introduce basic testing · 6af06232
      Michal Privoznik 提交于
      For now only one test is introduced. It's purpose in life
      is to check we don't break NUMA host distances XML format.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      6af06232
    • J
      libxl: add migration support · 9b8d6e1e
      Jim Fehlig 提交于
      This patch adds initial migration support to the libxl driver,
      using the VIR_DRV_FEATURE_MIGRATION_PARAMS family of migration
      functions.
      Signed-off-by: NJim Fehlig <jfehlig@suse.com>
      9b8d6e1e
    • J
      libxl: introduce libxlDomainDefCheckABIStability · d9a099a4
      Jim Fehlig 提交于
      Introduce a simple libxlDomainDefCheckABIStability() function that
      can be used check ABI stability between two virDomainDef objects.
      Signed-off-by: NJim Fehlig <jfehlig@suse.com>
      d9a099a4
    • E
      maint: detect VPATH builds when checking for gnulib update · 3cbd3b8e
      Eric Blake 提交于
      I accidentally typed 'make' in the srcdir of a VPATH build, and
      was surprised to see this:
      
      $ make
      /bin/sh: s/^[ +-]//;s/ .*//: No such file or directory
      INFO: gnulib update required; running ./autogen.sh first
      make: -n: Command not found
      ./autogen.sh
      I am going to run ./configure with no arguments - if you wish
      to pass any to it, please specify them on the ./autogen.sh command line.
      running bootstrap...
      ./bootstrap: Bootstrapping from checked-out libvirt sources...
      ./bootstrap: getting gnulib files...
      
      Oops - we're trying to execute some fairly bogus command names,
      and then trying to configure in-tree (which breaks all existing
      VPATH builds, since automake refuses to do a VPATH build if it
      detects an in-tree configure).  The third line (executing "-n")
      is fixed by updating to the latest gnulib; the rest of the problem
      is fixed by copying the same filtering in our cfg.mk as what
      gnulib just added, so that we avoid any $(shell) invocations which
      in turn depend on variables that are only populated by a working
      Makefile.  With that in place, we are back to the much nicer:
      
      $ make
      There seems to be no Makefile in this directory.
      You must run ./configure before running 'make'.
      make: *** [abort-due-to-no-makefile] Error 1
      
      Additionally, although harder to see - there was a trailing space in
      the message warning us that autogen would run an in-tree configure.
      
      * .gnulib: Update to latest, in part for maint.mk improvements.
      * cfg.mk (_update_required): Don't check for update in
      unconfigured directory.
      * autogen.sh (no_git): Drop trailing space.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      3cbd3b8e
    • E
      maint: optimize locale.h syntax check · d804a58a
      Eric Blake 提交于
      Reusing the maint.mk code allows for a more efficient syntax check
      (fewer grep processes), and a more compact representation of what
      we are really checking for in commit 1919e355.
      
      * cfg.mk (sc_require_locale_h): Use maint.mk loop instead of
      rolling our own.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      d804a58a
  3. 04 6月, 2014 5 次提交
    • 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
      cfg.mk: Introduce rule for setlocale() · 1919e355
      Michal Privoznik 提交于
      In the past we had some issues where setlocale() was called without
      corresponding include of locale.h. While on some systems this may
      work, on others the compilation failed. We should have a syntax-check
      rule for that to prevent this from happening again.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      1919e355
    • 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 13 次提交