1. 23 11月, 2010 1 次提交
    • C
      Make state driver device hotplug/update actually transient · 45ec297d
      Cole Robinson 提交于
      The current semantics of non-persistent hotplug/update are confusing: the
      changes will persist as long as the in memory domain definition isn't
      overwritten. This means hotplug changes stay around until the domain is
      redefined or libvirtd is restarted.
      
      Call virDomainObjSetDefTransient at VM startup, so that we properly discard
      hotplug changes when the VM is shutdown.
      45ec297d
  2. 17 11月, 2010 5 次提交
    • E
      maint: use gnulib configmake rather than open-coding things · 0d5f54bb
      Eric Blake 提交于
      * bootstrap.conf (gnulib_modules): Add configmake.
      * daemon/Makefile.am (libvirtd_CFLAGS): Drop defines provided by
      gnulib.
      * src/Makefile.am (INCLUDES): Likewise.
      * tests/Makefile.am (INCLUDES): Likewise.
      * tools/Makefile.am (virsh_CFLAGS): Likewise.
      * daemon/libvirtd.c (qemudInitPaths, usage, main): Update
      clients.
      * src/cpu/cpu_map.c (CPUMAPFILE): Likewise.
      * src/driver.c (DEFAULT_DRIVER_DIR): Likewise.
      * src/internal.h (_): Likewise.
      * src/libvirt.c (virInitialize): Likewise.
      * src/lxc/lxc_conf.h (LXC_CONFIG_DIR, LXC_STATE_DIR, LXC_LOG_DIR):
      Likewise.
      * src/lxc/lxc_conf.c (lxcCapsInit, lxcLoadDriverConfig):
      Likewise.
      * src/network/bridge_driver.c (NETWORK_PID_DIR)
      (NETWORK_STATE_DIR, DNSMASQ_STATE_DIR, networkStartup): Likewise.
      * src/nwfilter/nwfilter_driver.c (nwfilterDriverStartup):
      Likewise.
      * src/qemu/qemu_conf.c (qemudLoadDriverConfig): Likewise.
      * src/qemu/qemu_driver.c (qemudStartup): Likewise.
      * src/remote/remote_driver.h (LIBVIRTD_PRIV_UNIX_SOCKET)
      (LIBVIRTD_PRIV_UNIX_SOCKET_RO, LIBVIRTD_CONFIGURATION_FILE)
      (LIBVIRT_PKI_DIR): Likewise.
      * src/secret/secret_driver.c (secretDriverStartup): Likewise.
      * src/security/security_apparmor.c (VIRT_AA_HELPER): Likewise.
      * src/security/virt-aa-helper.c (main): Likewise.
      * src/storage/storage_backend_disk.c (PARTHELPER): Likewise.
      * src/storage/storage_driver.c (storageDriverStartup): Likewise.
      * src/uml/uml_driver.c (TEMPDIR, umlStartup): Likewise.
      * src/util/hooks.c (LIBVIRT_HOOK_DIR): Likewise.
      * tools/virsh.c (main): Likewise.
      * docs/hooks.html.in: Likewise.
      0d5f54bb
    • S
      replace last instances of close() · 8e3051af
      Stefan Berger 提交于
      I am replacing the last instances of close() I found with VIR_CLOSE() / VIR_FORCE_CLOSE respectively.
      
      The first part patches virsh, which I missed out on previously.
      
      The 2nd patch I had left out intentionally to look at it more carefully:
      The 'closed' variable could be easily removed since it wasn't used anywhere else. The possible race condition that could result from the filedescriptor being closed and not set to -1 (and possibly let us write into 'something' totally different if the fd was allocated by another thread) seems to be prevented by the qemuMonitorLock() already placed around the code that reads from or writes to the fd. So the change of this code as shown in the patch should not have any side-effects.
      8e3051af
    • S
      deprecate fclose() and introduce VIR_{FORCE_}FCLOSE() · 7b7cb1ec
      Stefan Berger 提交于
      Similarly to deprecating close(), I am now deprecating fclose() and
      introduce VIR_FORCE_FCLOSE() and VIR_FCLOSE(). Also, fdopen() is replaced with
      VIR_FDOPEN().
      
      Most of the files are opened in read-only mode, so usage of
      VIR_FORCE_CLOSE() seemed appropriate. Others that are opened in write
      mode already had the fclose()<  0 check and I converted those to
      VIR_FCLOSE()<  0.
      
      I did not find occurrences of possible double-closed files on the way.
      7b7cb1ec
    • O
      qemu: fix typos in qemu_monitor_text.c · 54837455
      Osier Yang 提交于
      * src/qemu/qemu_monitor_text.c (qemuMonitorTextChangeMedia)
      54837455
    • O
      qemu: record timestamp in qemu domain log · 93bc093a
      Osier Yang 提交于
      Currently only support domain start and shutdown, for domain start,
      record timestamp before the qemu command line, and for domain shutdown,
      just say it's shutting down with timestamp.
      
      * src/qemu/qemu_driver.c (qemudStartVMDaemon, qemudShutdownVMDaemon
        introduced two macros - START_POSTFIX, SHUTDOWN_POSTFIX)
      93bc093a
  3. 12 11月, 2010 5 次提交
    • J
      90afacb3
    • M
      qemu: Add qemu-system-s390x to the emulators list · f6d9a3e2
      Matthias Bolte 提交于
      f6d9a3e2
    • D
      Support virDomainOpenConsole with QEMU · bdb28f44
      Daniel P. Berrange 提交于
      This provides an implementation of the virDomainOpenConsole
      API with the QEMU driver. For the streams code, this reuses
      most of the code previously added for the tunnelled migration
      streams since it is generic.
      
      * src/qemu/qemu_driver.c: Support virDomainOpenConsole
      bdb28f44
    • D
      Add a generic internal API for handling any FD based stream · 7c08fcc4
      Daniel P. Berrange 提交于
      To avoid the need for duplicating implementations of virStream
      drivers, provide a generic implementation that can handle any
      FD based stream. This code is copied from the existing impl
      in the QEMU driver, with the locking moved into the stream
      impl, and addition of a read callback
      
      The FD stream code will refuse to operate on regular files or
      block devices, since those can't report EAGAIN properly when
      they would block on I/O
      
      * include/libvirt/virterror.h, include/libvirt/virterror.h: Add
        VIR_FROM_STREAM error domain
      * src/qemu/qemu_driver.c: Remove code obsoleted by the new
        generic streams driver.
      * src/fdstream.h, src/fdstream.c, src/fdstream.c,
        src/libvirt_private.syms: Generic reusable FD based streams
      7c08fcc4
    • D
      Introduce a virDomainOpenConsole API · 88a9b382
      Daniel P. Berrange 提交于
      To enable virsh console (or equivalent) to be used remotely
      it is necessary to provide remote access to the /dev/pts/XXX
      pseudo-TTY associated with the console/serial/parallel device
      in the guest. The virStream API provide a bi-directional I/O
      stream capability that can be used for this purpose. This
      patch thus introduces a virDomainOpenConsole API that uses
      the stream APIs.
      
      * src/libvirt.c, src/libvirt_public.syms,
        include/libvirt/libvirt.h.in, src/driver.h: Define the
        new virDomainOpenConsole API
      * src/esx/esx_driver.c, src/lxc/lxc_driver.c,
        src/opennebula/one_driver.c, src/openvz/openvz_driver.c,
        src/phyp/phyp_driver.c, src/qemu/qemu_driver.c,
        src/remote/remote_driver.c, src/test/test_driver.c,
        src/uml/uml_driver.c, src/vbox/vbox_tmpl.c,
        src/xen/xen_driver.c, src/xenapi/xenapi_driver.c: Stub
        API entry point
      88a9b382
  4. 11 11月, 2010 1 次提交
  5. 10 11月, 2010 1 次提交
    • S
      bye to close(), welcome to VIR_(FORCE_)CLOSE() · 60ae1c34
      Stefan Berger 提交于
      Using automated replacement with sed and editing I have now replaced all
      occurrences of close() with VIR_(FORCE_)CLOSE() except for one, of
      course. Some replacements were straight forward, others I needed to pay
      attention. I hope I payed attention in all the right places... Please
      have a look. This should have at least solved one more double-close
      error.
      60ae1c34
  6. 09 11月, 2010 10 次提交
    • D
      Support SPICE channel security options · b0ef5c53
      Daniel P. Berrange 提交于
      This extends the SPICE XML to allow channel security options
      
          <graphics type='spice' port='-1' tlsPort='-1' autoport='yes'>
            <channel name='main' mode='secure'/>
            <channel name='record' mode='insecure'/>
          </graphics>
      
      Any non-specified channel uses the default, which allows both
      secure & insecure usage
      
      * src/conf/domain_conf.c, src/conf/domain_conf.h,
        src/libvirt_private.syms: Add XML syntax for specifying per
        channel security options for spice.
      * src/qemu/qemu_conf.c: Configure channel security with spice
      b0ef5c53
    • D
      Support multiple QXL video cards · 6794a44b
      Daniel P. Berrange 提交于
      QEMU crashes & burns if you try multiple Cirrus video cards, but
      QXL copes fine. Adapt QEMU config code to allow multiple QXL
      video cards
      
      * src/qemu/qemu_conf.c: Support multiple QXL video cards
      6794a44b
    • D
      Define XML syntax for password expiry · 7a696678
      Daniel P. Berrange 提交于
      This extends the XML syntax for <graphics> to allow a password
      expiry time to be set
      
      eg
      
        <graphics type='vnc' port='5900' autoport='yes' keymap='en-us' passwd='12345' passwdValidTo='2010-04-09T15:51:00'/>
      
      The timestamp is in UTC.
      
      * src/conf/domain_conf.h: Pull passwd out into separate struct
        virDomainGraphicsAuthDef to allow sharing between VNC & SPICE
      * src/conf/domain_conf.c: Add parsing/formatting of new passwdValidTo
        argument
      * src/opennebula/one_conf.c, src/qemu/qemu_conf.c, src/qemu/qemu_driver.c,
        src/xen/xend_internal.c, src/xen/xm_internal.c: Update for changed
        struct containing VNC password
      7a696678
    • D
      Add SPICE support for QEMU driver configuration file · b5c99209
      Daniel P. Berrange 提交于
      In common with VNC, the QEMU driver configuration file is used
      specify the host level TLS certificate location and a default
      password / listen address
      
      * src/qemu/qemu.conf: Add spice_listen, spice_tls,
        spice_tls_x509_cert_dir & spice_password config params
      * src/qemu/qemu_conf.c, src/qemu/qemu_conf.h: Parsing of
        spice config parameters and updating -spice arg generation
        to use them
      * tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-rhel6.args,
        tests/qemuxml2argvtest.c: Expand test case to cover driver
        level configuration
      b5c99209
    • D
      Support automatic port number allocation for SPICE · ed0d9f6c
      Daniel P. Berrange 提交于
      * src/qemu/qemu_driver.c: Allocate the TCP ports for SPICE
        before starting guest
      ed0d9f6c
    • D
      Implement QEMU/KVM support for SPICE graphics · 9b57fa65
      Daniel P. Berrange 提交于
      This supports the -spice argument posted for review against
      the latest upstream QEMU/KVM. This supports the bare minimum
      config with port, TLS port & listen address. The x509 bits are
      added in a later patch.
      
      * src/qemu_conf.c, src/qemu_conf.h: Add SPICE flag. Check for
        -spice availability. Format -spice arg for command line
      * qemuhelptest.c: Add SPICE flag
      * qemuxml2argvdata/qemuxml2argv-graphics-spice.args: Add <graphics>
        for spice
      * qemuxml2argvdata/qemuxml2argv-graphics-spice.xml: Add -spice arg
      * qemuxml2argvtest.c: Add SPICE flag
      9b57fa65
    • D
      Implement QEMU/KVM QXL video card support in QEMU driver · 635f9ca1
      Daniel P. Berrange 提交于
      This supports the '-vga qxl' parameter in upstream QEMU/KVM
      which has SPICE support added. This isn't particularly useful
      until you get the next patch for -spice support. Also note that
      while the libvirt XML supports multiple video devices, this
      patch only supports a single one. A later patch can add support
      for 2nd, 3rd, etc PCI devices for QXL
      
      * src/qemu/qemu_conf.h: Flag for QXL support
      * src/qemu/qemu_conf.c: Probe for '-vga qxl' support and implement it
      * tests/qemuxml2argvtest.c, tests/qemuxml2xmltest.c,
        tests/qemuxml2argvdata/qemuxml2argv-graphics-spice.args,
        tests/qemuxml2argvdata/qemuxml2argv-graphics-spice.xml: Test
        case for generating spice args with RHEL6 kvm
      635f9ca1
    • D
      Add a <graphics> type for SPICE protocol · c909091b
      Daniel P. Berrange 提交于
      This adds an element
      
       <graphics type='spice' port='5903' tlsPort='5904' autoport='yes' listen='127.0.0.1'/>
      
      This is the bare minimum that should be exposed in the guest
      config for SPICE. Other parameters are better handled as per
      host level configuration tunables
      
      * docs/schemas/domain.rng: Define the SPICE <graphics> schema
      * src/domain_conf.h, src/domain_conf.c: Add parsing and formatting
        for SPICE graphics config
      * src/qemu_conf.c: Complain about unsupported graphics types
      c909091b
    • D
      Add a QXL graphics card type to domain XML schema · 3cf5b6f7
      Daniel P. Berrange 提交于
      * src/qemu_conf.c: Add dummy entry in enumeration
      * docs/schemas/domain.rng: Add 'qxl' as a type for the <video> tag
      * src/domain_conf.c, src/domain_conf.h: Add QXL to video type
        enumerations
      3cf5b6f7
    • J
      qemu: Fix non-literal format string · 0011e917
      Jiri Denemark 提交于
      0011e917
  7. 08 11月, 2010 2 次提交
    • D
      Add sysinfo/smbios support to the QEmu driver · 54c0237c
      Daniel Veillard 提交于
      The patch is based on the possiblity in the QEmu command line to
      add -smbios options allowing to override the default values picked
      by QEmu. We need to detect this first from QEmu help output.
      If the domain is defined with smbios to be inherited from host
      then we pass the values coming from the Host own SMBIOS, but
      if the domain is defined with smbios to come from sysinfo, we
      use the ones coming from the domain definition.
      
      * src/qemu/qemu_conf.h: add the QEMUD_CMD_FLAG_SMBIOS_TYPE enum
        value
      * src/qemu/qemu_conf.c: scan the help output for the smbios support,
        and if available add support based on the domain definitions,
        and host data
      * tests/qemuhelptest.c: add the new enum in the outputs
      54c0237c
    • D
      Read the host sysinfo for the QEmu driver · 1e4c4599
      Daniel Veillard 提交于
      Read and store the data when initializing the driver.
      1e4c4599
  8. 06 11月, 2010 1 次提交
  9. 02 11月, 2010 3 次提交
    • D
      Misc error handling fixes in text mode monitor commands · a1de6ba0
      Daniel P. Berrange 提交于
      A couple of places in the text monitor were overwriting the
      'ret' variable with a >= 0 value before success was actually
      determined. So later error paths would not correctly return
      the -1 value. The drive_add code was not checking for errors
      like missing command
      
      * src/qemu/qemu_monitor_text.c: Misc error handling fixes
      a1de6ba0
    • D
      Revert commit 06f81c63 · a51ccaf8
      Daniel P. Berrange 提交于
      Commit 06f81c63 attempted to make
      QEMU driver ignore the failure to relabel 'stdin_path' if it was
      on NFS. The actual result was that it ignores *all* failures to
      label any aspect of the VM, unless stdin_path is non-NULL and
      is not on NFS.
      
      * src/qemu/qemu_driver.c: Treat all relabel failures as terminal
      a51ccaf8
    • D
      qemu: add the USB devices to the cgroup whitelist · 5919afe3
      Diego Elio Pettenò 提交于
      Make sure that the QEmu process within the cgroup can access the device
      file for the USB device that has to be connected to the virtual domain.
      5919afe3
  10. 30 10月, 2010 2 次提交
    • K
    • K
      add compression support for "virsh dump" · 95a17abd
      KAMEZAWA Hiroyuki 提交于
      Add dump_image_format[] to qemu.conf and support compressed dump
      at virsh dump. coredump compression is important for saving disk space
      in an environment where multiple guests run.
      
      In general, "disk space for dump" is specially allocated and will be
      a dead space in the system. It's used only at emergency. So, it's better
      to have both of save_image_format and dump_image_format. "save" is done
      in scheduled manner with enough calculated disk space for it.
      
      This code reuses some of save_image_format[] and supports the same format.
      
      Changelog:
       - modified libvirtd_qemu.aug
       - modified test_libvirtd_qemu.aug
       - fixed error handling of qemudSaveCompressionTypeFromString()
      95a17abd
  11. 29 10月, 2010 1 次提交
    • L
      qemu_driver: add virCgroupMounted · 41b2cee2
      Lai Jiangshan 提交于
      When we mount any cgroup without "-o devices", we will fail to start vms:
      
      error: Failed to start domain vm1
      error: Unable to deny all devices for vm1: No such file or directory
      
      When we mount any cgroup without "-o cpu", we will fail to get schedinfo:
      Scheduler      : posix
      error: unable to get cpu shares tunable: No such file or directory
      
      We should only use the cgroup controllers which are mounted on host.
      So I add virCgroupMounted() for qemuCgroupControllerActive()
      Signed-off-by: NLai Jiangshan <laijs@cn.fujitsu.com>
      41b2cee2
  12. 28 10月, 2010 5 次提交
  13. 27 10月, 2010 1 次提交
  14. 26 10月, 2010 2 次提交
    • E
      qemu: work around dash 0.5.5 bug in managed save · f22e670b
      Eric Blake 提交于
      Older dash mistakenly truncates regular files when using <> redirection;
      this kills our use of double dd to reduce storage overhead when
      saving qemu images.  But qemu insists on running a command through
      /bin/sh, so we work around it by having qemu run $sh -c 'real command'
      when we have a replacement $sh in mind.
      
      * configure.ac (VIR_WRAPPER_SHELL): Define to a replacement shell,
      if /bin/sh is broken on <> redirection.
      * src/qemu/qemu_monitor.h (VIR_WRAPPER_SHELL_PREFIX)
      (VIR_WRAPPER_SHELL_SUFFIX): New macros.
      * src/qemu/qemu_monitor_text.c (qemuMonitorTextMigrateToFile): Use
      them.
      * src/qemu/qemu_monitor_json.c (qemuMonitorJSONMigrateToFile):
      Likewise.
      f22e670b
    • J
      qemu: Fix detection of drive readonly option · 69b75521
      Jiri Denemark 提交于
      So far, readonly=on option is used when qemu supports -device. However,
      there are qemu versions which support readonly option with -drive
      although they don't have support for -device.
      69b75521