1. 05 4月, 2011 6 次提交
    • M
      Remove PATH_MAX sized stack allocations related to virFileBuildPath · 15731581
      Matthias Bolte 提交于
      Make virFileBuildPath operate on the heap instead of the stack. It
      allocates a buffer instead of expecting a preexisting buffer.
      15731581
    • M
      bb3fa041
    • M
      vmx: Support persistent CPU shares · 81800ff6
      Matthias Bolte 提交于
      81800ff6
    • M
      Add autostart support to libxl driver · fb92307f
      Markus Groß 提交于
      The domainSetAutostart function is nearly identical to the one from qemu.
      fb92307f
    • J
      Allow relative path for qemu backing file · 33da939b
      Jesse Cook 提交于
      This patch enables the relative backing file path support provided by
      qemu-img create.
      
      If a relative path is specified for the backing file, it is converted
      to an absolute path using the storage pool path. The absolute path is
      used to verify that the backing file exists. If the backing file exists,
      the relative path is allowed and will be provided to qemu-img create.
      33da939b
    • E
      build: detect potentential uninitialized variables · 0d166c6b
      Eric Blake 提交于
      Even with -Wuninitialized (which is part of autobuild.sh
      --enable-compile-warnings=error), gcc does NOT catch this
      use of an uninitialized variable:
      
      {
        if (cond)
          goto error;
        int a = 1;
      error:
        printf("%d", a);
      }
      
      which prints 0 (supposing the stack started life wiped) if
      cond was true.  Clang will catch it, but we don't use clang
      as often.  Using gcc -Wjump-misses-init catches it, but also
      gives false positives:
      
      {
        if (cond)
          goto error;
        int a = 1;
        return a;
      error:
        return 0;
      }
      
      Here, a was never used in the scope of the error block, so
      declaring it after goto is technically fine (and clang agrees).
      However, given that our HACKING already documents a preference
      to C89 decl-before-statement, the false positive warning is
      enough of a prod to comply with HACKING.
      
      [Personally, I'd _really_ rather use C99 decl-after-statement
      to minimize scope, but until gcc can efficiently and reliably
      catch scoping and uninitialized usage bugs, I'll settle with
      the compromise of enforcing a coding standard that happens to
      reject false positives if it can also detect real bugs.]
      
      * acinclude.m4 (LIBVIRT_COMPILE_WARNINGS): Add -Wjump-misses-init.
      * src/util/util.c (__virExec): Adjust offenders.
      * src/conf/domain_conf.c (virDomainTimerDefParseXML): Likewise.
      * src/remote/remote_driver.c (doRemoteOpen): Likewise.
      * src/phyp/phyp_driver.c (phypGetLparNAME, phypGetLparProfile)
      (phypGetVIOSFreeSCSIAdapter, phypVolumeGetKey)
      (phypGetStoragePoolDevice)
      (phypVolumeGetPhysicalVolumeByStoragePool)
      (phypVolumeGetPath): Likewise.
      * src/vbox/vbox_tmpl.c (vboxNetworkUndefineDestroy)
      (vboxNetworkCreate, vboxNetworkDumpXML)
      (vboxNetworkDefineCreateXML): Likewise.
      * src/xenapi/xenapi_driver.c (getCapsObject)
      (xenapiDomainDumpXML): Likewise.
      * src/xenapi/xenapi_utils.c (createVMRecordFromXml): Likewise.
      * src/security/security_selinux.c (SELinuxGenNewContext):
      Likewise.
      * src/qemu/qemu_command.c (qemuBuildCommandLine): Likewise.
      * src/qemu/qemu_hotplug.c (qemuDomainChangeEjectableMedia):
      Likewise.
      * src/qemu/qemu_process.c (qemuProcessWaitForMonitor): Likewise.
      * src/qemu/qemu_monitor_text.c (qemuMonitorTextGetPtyPaths):
      Likewise.
      * src/qemu/qemu_driver.c (qemudDomainShutdown)
      (qemudDomainBlockStats, qemudDomainMemoryPeek): Likewise.
      * src/storage/storage_backend_iscsi.c
      (virStorageBackendCreateIfaceIQN): Likewise.
      * src/node_device/node_device_udev.c (udevProcessPCI): Likewise.
      0d166c6b
  2. 04 4月, 2011 1 次提交
    • D
      Release of libvirt-0.9.0 · d17e438a
      Daniel Veillard 提交于
      * configure.ac docs/news.html.in libvirt.spec.in: update for the release
      * po/*.po*: update polish translation and regenerate
      d17e438a
  3. 03 4月, 2011 2 次提交
  4. 02 4月, 2011 2 次提交
    • E
      docs: fix typo · d9588747
      Eric Blake 提交于
      * docs/formatdomain.html.in: Fix KVM name.
      d9588747
    • E
      docs: correct invalid xml · b5ec89d9
      Eric Blake 提交于
      * docs/internals.html.in: Fix xml errors.
      * docs/formatstorageencryption.html.in: Likewise.
      * docs/drvesx.html.in: Likewise.
      * docs/archnetwork.html.in: Likewise.
      * docs/logging.html.in: Likewise.
      * docs/drvvmware.html.in: Likewise.
      * docs/api.html.in: Likewise.
      * docs/formatnwfilter.html.in: Likewise.
      * docs/formatdomain.html.in: Likewise.
      * docs/windows.html.in: Likewise.
      b5ec89d9
  5. 01 4月, 2011 9 次提交
    • E
      virsh: fix mingw failure on creating nonblocking pipe · da3c4714
      Eric Blake 提交于
      * .gnulib: Update to latest, for nonblocking module.
      * bootstrap.conf (gnulib_modules): Add nonblocking.
      * src/util/util.c (virSetBlocking): Defer to gnulib.
      da3c4714
    • D
      Fix libxl driver startup · 03ede2f6
      Daniel Veillard 提交于
        When you happen to have a libvirtd binary compiled with the
      libxenlight driver (say you have installed xen-4.1 libraries)
      but not running a xen enabled system, then libvirtd fails to start.
      
      The cause is that libxlStartup() returns -1 when failing to initialize
      the library, and this propagates to virStateInitialize() which consider
      this a failure. We should only exit libxlStartup with an error code
      if something like an allocation error occurs, not if the driver failed
      to initialize.
      
      * src/libxl/libxl_driver.c: fix libxlStartup() to not return -1
        when failing to initialize the libxenlight library
      03ede2f6
    • J
      virsh: Fix documentation for memtune command · 1e8f2079
      Jiri Denemark 提交于
      Commit 78ba748e claims to fix
      documentation for swap_hard_limit virsh memtune option but it only fixes
      documentation in formatdomain.html and libvirt.h. This patch completes
      the task by fixing "virsh help memtune" output and memtune section of
      virsh man page.
      1e8f2079
    • G
      Make check_fc_host() and check_vport_capable() usable as rvalues · d0bd206a
      Guido Günther 提交于
      as needed on non linux ports using HAL.
      d0bd206a
    • J
      qemu: Ignore libvirt debug messages in qemu log · 72ab0b6d
      Jiri Denemark 提交于
      qemu driver uses a 4K buffer for reading qemu log file. This is enough
      when only qemu's output is present in the log file. However, when
      debugging messages are turned on, intermediate libvirt process fills the
      log with a bunch of debugging messages before it executes qemu binary.
      In such a case the buffer may become too small. However, we are not
      really interested in libvirt messages so they can be filtered out from
      the buffer.
      72ab0b6d
    • O
      qemu: Fix improper logic of qemuCgroupSetup · 0ca16a78
      Osier Yang 提交于
      It throws errors as long as the cgroup controller is not available,
      regardless of whether we really want to use it to do setup or not,
      which is not what we want, fixing it with throwing error when need
      to use the controller.
      
      And change "VIR_WARN" to "qemuReportError" for memory controller
      incidentally.
      0ca16a78
    • W
      free tmp after unlinking it · e206946d
      Wen Congyang 提交于
      We create a temporary file to save memory, and we will remove it after reading
      memory to buffer. But we free the variable that contains the temporary filename
      before we remove it. So we should free tmp after unlinking it.
      e206946d
    • M
      Fix several formatting mistakes in doc · 51434d3b
      Michal Privoznik 提交于
      51434d3b
    • D
      Remove iohelper on Win32 since it is not required · e44e8e25
      Daniel P. Berrange 提交于
      The iohelper binary is not required on Win32, although it compiles
      without trouble. Simply remove it from the RPM.
      
      * mingw32-libvirt.spec.in: Remove iohelper
      e44e8e25
  6. 31 3月, 2011 4 次提交
    • D
      Fix domain events C example on Win32 · 24219542
      Daniel P. Berrange 提交于
      printf on Win32 does not necessarily support %lld and we don't
      have GNULIBs wrapper for printf(). Switch to use asprintf() for
      which we do have a gnulib wrapper with %lld support
      
      * examples/domain-events/events-c/event-test.c: Fix formatting
        of %lld on Win32
      * cfg.mk: Don't require use of virAsprintf since this is an
        example app for out of tree users to follow
      24219542
    • E
      maint: avoid locale-sensitivity in string case comparisons · 6c9e89bb
      Eric Blake 提交于
      strcase{cmp/str} have the drawback of being sensitive to the global
      locale; this is unacceptable in a library setting.  Prefer a
      hard-coded C locale alternative for all but virsh, which is user
      facing and where the global locale isn't changing externally.
      
      * .gnulib: Update to latest, for c-strcasestr change.
      * bootstrap.conf (gnulib_modules): Drop strcasestr, add c-strcase
      and c-strcasestr.
      * cfg.mk (sc_avoid_strcase): New rule.
      (exclude_file_name_regexp--sc_avoid_strcase): New exception.
      * src/internal.h (STRCASEEQ, STRCASENEQ, STRCASEEQLEN)
      (STRCASENEQLEN): Adjust offenders.
      * src/qemu/qemu_monitor_text.c (qemuMonitorTextEjectMedia):
      Likewise.
      * tools/virsh.c (namesorter): Document exception.
      6c9e89bb
    • E
      docs: mention C89 syntax preferences · 06732e1a
      Eric Blake 提交于
      * docs/hacking.html.in (Code formatting): Document that // comment
      and declaration-after-statement are discouraged.
      * HACKING: Regenerate.
      06732e1a
    • J
      qemu: Fix media eject with qemu-0.12.* · e586f574
      Jiri Denemark 提交于
      In qemu-0.12.* "device '...' is locked" message was changed to "Device
      ..." so libvirt was no longer detecting this as an error.
      e586f574
  7. 30 3月, 2011 6 次提交
    • D
      The next release is 0.9.0 not 0.8.9 · 6c8f2475
      Daniel Veillard 提交于
      Fix this which went into documentation
      6c8f2475
    • W
      check whether qemuMonitorJSONHMP() failed · 0ecfa7f2
      Wen Congyang 提交于
      If qemu quited unexpectedly when we call qemuMonitorJSONHMP(),
      libvirt will crash.
      Steps to reproduce this bug:
      1. use gdb to attach libvirtd, and set a breakpoint in the function
         qemuMonitorSetCapabilities()
      2. start a vm
      3. let the libvirtd to run until qemuMonitorJSONSetCapabilities() returns.
      4. kill the qemu process
      5. continue running libvirtd
      Signed-off-by: NWen Congyang <wency@cn.fujitsu.com>
      0ecfa7f2
    • W
      do not send monitor command after monitor meet error · cc2424fc
      Wen Congyang 提交于
      If the monitor met a error, and we will call qemuProcessHandleMonitorEOF().
      But we may try to send monitor command after qemuProcessHandleMonitorEOF()
      returned. Then libvirtd will be blocked in qemuMonitorSend().
      
      Steps to reproduce this bug:
      1. use gdb to attach libvirtd, and set a breakpoint in the function
         qemuConnectMonitor()
      2. start a vm
      3. let the libvirtd to run until qemuMonitorOpen() returns.
      4. kill the qemu process
      5. continue running libvirtd
      Signed-off-by: NWen Congyang <wency@cn.fujitsu.com>
      cc2424fc
    • H
      qemu: unlock qemu driver before return from domain save · 025e1998
      Hu Tao 提交于
      qemuDriverUnlock() wasn't called on 2 exit paths
      * src/qemu/qemu_driver.c: fix qemudDomainSave() to always unlock
        the driver before exiting on error
      025e1998
    • N
      extend logging to record configuration-related changes · 343a27af
      Naoya Horiguchi 提交于
      Currently libvirt's default logging is limited and it is difficult to
      determine what was happening when a proglem occurred (especially on a
      machines where one don't know the detail.)  This patch helps to do that
      by making additional logging available for the following events:
      
        creating/defining/undefining domains
        creating/defining/undefining/starting/stopping networks
        creating/defining/undefining/starting/stopping storage pools
        creating/defining/undefining/starting/stopping storage volumes.
      
      * AUTHORS: add Naoya Horiguchi
      * src/network/bridge_driver.c src/qemu/qemu_driver.c
        src/storage/storage_driver.c: provide more VIR_INFO logging
      343a27af
    • D
      Add libvirt_iohelper to spec file · 1613912d
      Daniel Veillard 提交于
      The new iohelper binary was missing from the packaging spec
      1613912d
  8. 29 3月, 2011 10 次提交
    • O
      cputune: New tests for cputune XML · 079ae9c7
      Osier Yang 提交于
      v1 - v2:
        * Add missed tests/qemuxml2argvdata/qemuxml2argv-cputune.args
      079ae9c7
    • O
      cputune: Support cputune for xend driver · 01692bb1
      Osier Yang 提交于
      Not sure if it's the correct way to add cputune xml for xend driver,
      and besides, seems "xm driver" and "xen hypervisor" also support
      vcpu affinity, do we need to add support for them too?
      01692bb1
    • O
      cputune: Support cputune for lxc driver · e98eb7f4
      Osier Yang 提交于
      LXC driver doesn't support vcpu affinity yet, so just need
      to modify it to support cpu shares.
      e98eb7f4
    • O
      cputune: Support cputune for qemu driver · 1cc4d025
      Osier Yang 提交于
      When domain startup, setting cpu affinity and cpu shares according
      to the cputune xml specified in domain xml.
      
      Modify "qemudDomainPinVcpu" to update domain config for vcpupin,
      and modify "qemuSetSchedulerParameters" to update domain config
      for cpu shares.
      
      v1 - v2:
         * Use "VIR_ALLOC_N" instead of "VIR_ALLOC_VAR"
         * But keep raising error when it fails on adding vcpupin xml
           entry, as I still don't have a better idea yet.
      1cc4d025
    • O
      cputune: Implementations of parsing and formating cputune xml · b8853925
      Osier Yang 提交于
      Implementations of following functions:
        virDomainVcpupinIsDuplicate
        virDomainVcpupinFindByVcpu
        virDomainVcpupinAdd
      
      Update "virDomainDefParseXML" to parse, and "virDomainDefFormatXML"
      to build cputune xml, also implementations of new internal helper
      functions.
      
      v1 - v2:
        * Resolve potential crash bug of "virDomainVcpupinAdd"
      b8853925
    • O
      cputune: Add data structures presenting cputune XML · 853f0fdf
      Osier Yang 提交于
      Also related new functions' declaration, and expose the new introduced
      functions in libvirt_private.syms.
      
      v1 - v2:
        Don't expose "virAllocVar" in libvirt_private.syms
      853f0fdf
    • O
      cputune: Add document for cputune XML · 6b364420
      Osier Yang 提交于
      v1 - v3:
        * More clear document for "cpu shares", adopted suggestions from
          Matthias Bottle and Daniel Veillard.
      6b364420
    • O
      cputune: Add XML schema for cputune xml · e3ea8828
      Osier Yang 提交于
      v1 - v2:
        * Remove upper limit of cpu shares. (Suggested by Matthias Bottle)
      e3ea8828
    • E
      qemu: fix regression with fd labeling on migration · daa6aa68
      Eric Blake 提交于
      My earlier testing for commit 34fa0de0 was done while starting
      just-built libvirt from an unconfined_t shell, where the fds happened
      to work when transferring to qemu.  But when installed and run under
      virtd_t, failure to label the raw file (with no compression) or the
      pipe (with compression) triggers SELinux failures when passing fds
      over SCM_RIGHTS to svirt_t qemu.
      
      * src/qemu/qemu_migration.c (qemuMigrationToFile): When passing
      FDs, make sure they are labeled.
      daa6aa68
    • E
      qemu: improve error message on failed fd transfer · 285e8a17
      Eric Blake 提交于
      First fallout of fd: migration - it looks like SELinux enforcing
      _does_ require fd labeling (running uninstalled libvirtd from an
      unconstrained shell had no problems, but once faked out by doing
       chcon `stat -c %C /usr/sbin/libvirtd` daemon/libvirtd
       run_init $PWD/daemon/libvirtd
      to run it with the same context as an init script service, and with
      SELinux enforcing, I got a rather confusing failure:
      error: Failed to save domain fedora_12 to fed12.img
      error: internal error unable to send TAP file handle: No file descriptor supplied via SCM_RIGHTS
      
      This fixes the error message, then I need to figure out a subsequent
      patch that does the fsetfilecon() necessary to keep things happy.
      It also appears that libvirtd hangs on a failed fd transfer; I don't
      know if that needs an independent fix.
      
      * src/qemu/qemu_monitor_text.c (qemuMonitorTextSendFileHandle):
      Improve message, since TAP is no longer only client.
      285e8a17