1. 17 12月, 2010 7 次提交
    • D
      Move QEMU hostdev helper code out of the QEMU driver · 01abc8a1
      Daniel P. Berrange 提交于
      The QEMU driver file is far too large. Move all the hostdev
      helper code out into a separate file. No functional change.
      
      * src/qemu/qemu_hostdev.c, src/qemu/qemu_hostdev.h,
        src/Makefile.am: Add hostdev helper file
      * src/qemu/qemu_driver.c: Delete hostdev code
      01abc8a1
    • D
      Move QEMU cgroup helper code out of the QEMU driver · 52271cfc
      Daniel P. Berrange 提交于
      The QEMU driver file is far too large. Move all the cgroup
      helper code out into a separate file. No functional change.
      
      * src/qemu/qemu_cgroup.c, src/qemu/qemu_cgroup.h,
        src/Makefile.am: Add cgroup helper file
      * src/qemu/qemu_driver.c: Delete cgroup code
      52271cfc
    • D
      Move QEMU audit helper code out of the QEMU driver · 1aecb634
      Daniel P. Berrange 提交于
      The QEMU driver file is far too large. Move all the audit
      helper code out into a separate file. No functional change.
      
      * src/qemu/qemu_audit.c, src/qemu/qemu_audit.h,
        src/Makefile.am: Add audit helper file
      * src/qemu/qemu_driver.c: Delete audit code
      1aecb634
    • D
      Move QEMU private data & namespace code into separate file · df4aabaf
      Daniel P. Berrange 提交于
      Move the code for handling the QEMU virDomainObjPtr private
      data, and custom XML namespace into a separate file
      
      * src/qemu/qemu_domain.c, src/qemu/qemu_domain.h: New file
        for private data & namespace code
      * src/qemu/qemu_driver.c, src/qemu/qemu_driver.h: Remove
        private data & namespace code
      * src/qemu/qemu_driver.h, src/qemu/qemu_command.h: Update
        includes
      * src/Makefile.am: Add src/qemu/qemu_domain.c
      df4aabaf
    • D
      Move QEMU command line management into a separate file · 0f2e4b9c
      Daniel P. Berrange 提交于
      The qemu_conf.c code is doing three jobs, driver config file
      loading, QEMU capabilities management and QEMU command line
      management. Move the command line code into its own file
      
      * src/qemu/qemu_command.c, src/qemu/qemu_command.h: New
        command line management code
      * src/qemu/qemu_conf.c, src/qemu/qemu_conf.h: Delete command
        line code
      * src/qemu/qemu_conf.h, src/qemu_conf.c: Adapt for API renames
      * src/Makefile.am: add src/qemu/qemu_command.c
      * src/qemu/qemu_monitor_json.c, src/qemu/qemu_monitor_text.c: Add
        import of qemu_command.h
      0f2e4b9c
    • D
      Move QEMU capabilities management into a separate file · d8ae147d
      Daniel P. Berrange 提交于
      The qemu_conf.c code is doing three jobs, driver config file
      loading, QEMU capabilities management and QEMU command line
      management. Move the capabilities code into its own file
      
      * src/qemu/qemu_capabilities.c, src/qemu/qemu_capabilities.h: New
        capabilities management code
      * src/qemu/qemu_conf.c, src/qemu/qemu_conf.h: Delete capabilities
        code
      * src/qemu/qemu_conf.h: Adapt for API renames
      * src/Makefile.am: add src/qemu/qemu_capabilities.c
      d8ae147d
    • E
      maint: doc fix · 02b4d34a
      Eric Blake 提交于
      * src/libvirt.c: Avoid duplicate word.
      02b4d34a
  2. 14 12月, 2010 15 次提交
    • H
      Add a new function doStartCPUs · 226f4054
      Hu Tao 提交于
      226f4054
    • H
      Add a new function doStopCPUs · fa139130
      Hu Tao 提交于
      fa139130
    • H
      54c68333
    • J
      cpu: Unify CPUID data structures · 8806c0db
      Jiri Denemark 提交于
      So far, CPUID data were stored in two different data structures. First
      of them was a structure allowing direct access for CPUID data according
      to function number and the second was a plain array of struct
      cpuX86cpuid. This was a silly design which resulted in converting data
      from one type to the other and back again or implementing similar
      functionality for both data structures.
      
      The patch leaves only the direct access structure. This makes the code
      both smaller and more maintainable since operations on different objects
      can use common low-level operations.
      
      All 57 tests for cpu subsystem still pass after this rewrite.
      8806c0db
    • J
      util: Fix logical error in virReportSystemErrorFull · 4262ff45
      Jiri Denemark 提交于
      4262ff45
    • J
      util: Fix error message in __virExec · 5b2c9f92
      Jiri Denemark 提交于
      Remove superfluous ": %s" suffix from the error message.
      5b2c9f92
    • M
      esx: Add support for storage volume cloning · e3fb2908
      Matthias Bolte 提交于
      e3fb2908
    • E
      selinux: avoid memory overhead of matchpathcon · 6679943f
      Eric Blake 提交于
      https://bugzilla.redhat.com/show_bug.cgi?id=658657
      
      * src/security/security_selinux.c
      (SELinuxRestoreSecurityFileLabel): Use selabel_lookup instead of
      matchpathcon.
      Suggested by Daniel Walsh.
      6679943f
    • E
      daemon, threads: plug a memory leak · 6e9a29c8
      Eric Blake 提交于
      * daemon/libvirtd.c (qemudStartWorker, qemudStartEventLoop): Avoid
      leaking pthread_attr resources.
      * src/util/threads-pthread.c (virThreadCreate): Likewise.
      6e9a29c8
    • E
      sysinfo: convert to virCommand · 3ce483af
      Eric Blake 提交于
      * src/util/sysinfo.c (virSysinfoRead): Use virCommand instead of
      virExec.
      3ce483af
    • E
      sysinfo: formatting cleanups · 046ca3f4
      Eric Blake 提交于
      * src/util/sysinfo.c: Indentation and () fixups.
      046ca3f4
    • E
      build: allow mingw compilation with virCommand · 3fbc30d9
      Eric Blake 提交于
      Allows compilation, but no creation of child processes yet.  Take it
      one step at a time.
      
      * src/util/util.c (virExecWithHook) [WIN32]: New dummy function.
      * src/libvirt_private.syms: Export it.
      3fbc30d9
    • E
      build: update gnulib for pipe on mingw · 65c0f17a
      Eric Blake 提交于
      * .gnulib: Update to latest.
      * bootstrap.conf (gnulib_modules): Import pipe-posix and waitpid
      for mingw.
      * src/remote/remote_driver.c (pipe) [WIN32]: Drop dead macro.
      * daemon/event.c (pipe) [WIN32]: Drop dead function.
      65c0f17a
    • O
      qemu: Introduce two new job types · 5faf88fe
      Osier Yang 提交于
      Currently, all of domain "save/dump/managed save/migration"
      use the same function "qemudDomainWaitForMigrationComplete"
      to wait the job finished, but the error messages are all
      about "migration", e.g. when a domain saving job is canceled
      by user, "migration was cancled by client" will be throwed as
      an error message, which will be confused for user.
      
      As a solution, intoduce two new job types(QEMU_JOB_SAVE,
      QEMU_JOB_DUMP), and set "priv->jobActive" to "QEMU_JOB_SAVE"
      before saving, to "QEMU_JOB_DUMP" before dumping, so that we
      could get the real job type in
      "qemudDomainWaitForMigrationComplete", and give more clear
      message further.
      
      And as It's not important to figure out what's the exact job
      is in the DEBUG and WARN log, also we don't need translated
      string in logs, simply repace "migration" with "job" in some
      statements.
      
      * src/qemu/qemu_driver.c
      5faf88fe
    • R
      802.1Qbh: Add support for IFLA_VF_MAC · 013c000a
      Roopa Prabhu 提交于
      Current code does not pass VM mac address to a 802.1Qbh direct attach
      interface using IFLA_VF_MAC.  This patch adds support in macvtap code to
      send IFLA_VF_MAC netlink request during port profile association on a
      802.1Qbh interface.
      
      Stefan Cc'ed for comments because this patch changes a condition for
      802.1Qbg
      
      802.1Qbh support for IFLA_VF_MAC in enic driver has been posted and is
      pending acceptance at http://marc.info/?l=linux-netdev&m=129185244410557&w=2
      013c000a
  3. 11 12月, 2010 6 次提交
    • E
      command: ease use with virBuffer, and fix qemu leak · e8d05c97
      Eric Blake 提交于
      * src/util/command.h (virCommandAddArgBuffer)
      (virCommandAddEnvBuffer): New prototypes.
      * src/util/command.c (virCommandAddArgBuffer)
      (virCommandAddEnvBuffer): Implement them.
      * src/libvirt_private.syms (command.h): Export them.
      * src/qemu/qemu_conf.c (qemudBuildCommandLine): Use them, plugging
      a memory leak on rbd_hosts in the process.
      e8d05c97
    • E
      conf: plug memory leaks · 20eb73e9
      Eric Blake 提交于
      * src/conf/domain_conf.c (virDomainGraphicsDefParseXML)
      (virDomainDeviceVirtioSerialAddressParseXML)
      (virDomainDiskDefFree): Free various leaks.
      20eb73e9
    • E
      virExec: avoid undefined behavior · c3568ec2
      Eric Blake 提交于
      * src/util/util.c (__virExec): Don't use FD_ISSET on out-of-bounds fd.
      c3568ec2
    • L
      Convert dhcpStartDhcpDaemon from virRun to virCommand · 044f2011
      Laine Stump 提交于
      This is pretty straightforward - even though dnsmasq gets daemonized
      and uses a pid file, those things are both handled by the dnsmasq
      binary itself. And libvirt doesn't need any of the output of the
      dnsmasq command either, so we just setup the args and call
      virRun(). Mainly it was just a (mostly) mechanical job of replacing
      the APPEND_ARG() macro (and some other *printfs()) with
      virCommandAddArg*().
      044f2011
    • M
      c9006b6b
    • M
      esx: Improve error reporting for failed tasks · 2a151699
      Matthias Bolte 提交于
      Instead of just reporting that a task failed get the
      localized message from the TaskInfo error and include
      it in the reported error message.
      
      Implement minimal deserialization support for the
      MethodFault type in order to obtain the actual fault
      type.
      
      For example, this changes the reported error message
      when trying to create a volume with zero size from
      
        Could not create volume
      
      to
      
        Could not create volume: InvalidArgument - A specified parameter was not correct.
      
      Not perfect yet, but better than before.
      2a151699
  4. 10 12月, 2010 7 次提交
    • E
      command: plug memory leak · f12d4169
      Eric Blake 提交于
      * src/util/command.c (virCommandFree): Free data from
      virCommandSetInputBuffer.
      f12d4169
    • J
      qemu: Add RBD support and some network disk fixes · 85400fb9
      Josh Durgin 提交于
      Changes common to all network disks:
      -Make source name optional in the domain schema, since NBD doesn't use it
      -Add a hostName type to the domain schema, and use it instead of genericName, which doesn't include .
      -Don't leak host names or ports
      -Set the source protocol in qemuParseCommandline
      Signed-off-by: NJosh Durgin <joshd@hq.newdream.net>
      85400fb9
    • M
      add network disk support · 036ad505
      MORITA Kazutaka 提交于
      This patch adds network disk support to libvirt/QEMU.  The currently
      supported protocols are nbd, rbd, and sheepdog.  The XML syntax is like
      this:
      
          <disk type="network" device="disk">
            <driver name="qemu" type="raw" />
            <source protocol='rbd|sheepdog|nbd' name="...some image identifier...">
              <host name="mon1.example.org" port="6000">
              <host name="mon2.example.org" port="6000">
              <host name="mon3.example.org" port="6000">
            </source>
            <target dev="vda" bus="virtio" />
          </disk>
      Signed-off-by: NMORITA Kazutaka <morita.kazutaka@lab.ntt.co.jp>
      036ad505
    • H
      Add a watchdog action `dump' · e19cdbfc
      Hu Tao 提交于
      `dump' watchdog action lets libvirtd to dump the guest when receives a
      watchdog event (which probably means a guest crash)
      
      Currently only qemu is supported.
      e19cdbfc
    • H
      Add a new function doCoreDump · b4560bf2
      Hu Tao 提交于
      This patch prepares for the next patch.
      b4560bf2
    • H
      threadpool impl · 482380b5
      Hu Tao 提交于
      * src/util/threadpool.c, src/util/threadpool.h: Thread pool
        implementation
      * src/Makefile.am: Build thread pool
      * src/libvirt_private.syms: Export public functions
      482380b5
    • E
      command: avoid memory leak · 8e9ee30e
      Eric Blake 提交于
      * src/util/command.c (virCommandRun): Fix yesterday's regression
      on logging, and avoid leaking log-only output captures.
      Reported by Hu Tao.
      8e9ee30e
  5. 09 12月, 2010 4 次提交
    • J
      qemu: Distinguish between domain shutdown and crash · c778fe96
      Jiri Denemark 提交于
      When we get an EOF event on monitor connection, it may be a result of
      either crash or graceful shutdown. QEMU which supports async events
      (i.e., we are talking to it using JSON monitor) emits SHUTDOWN event on
      graceful shutdown. In case we don't get this event by the time monitor
      connection is closed, we assume the associated domain crashed.
      c778fe96
    • R
      qemu: call drive_del in DetachPciDiskDevice · aefaeb3d
      Ryan Harper 提交于
      Currently libvirt doesn't confirm whether the guest has responded to the
      disk removal request.  In some cases this can leave the guest with
      continued access to the device while the mgmt layer believes that it has
      been removed.  With a recent qemu monitor command[1] we can
      deterministically revoke a guests access to the disk (on the QEMU side)
      to ensure no futher access is permitted.
      
      This patch adds support for the drive_del() command and introduces it
      in the disk removal paths.  If the guest is running in a QEMU without this
      command we currently explicitly check for unknown command/CommandNotFound
      and log the issue.
      
      If QEMU supports the command we issue the drive_del command after we attempt
      to remove the device.  The guest may respond and remove the block device
      before we get to attempt to call drive_del.  In that case, we explicitly check
      for 'Device not found' from the monitor indicating that the target drive
      was auto-deleted upon guest responds to the device removal notification.
      
      1. http://thread.gmane.org/gmane.comp.emulators.qemu/84745Signed-off-by: NRyan Harper <ryanh@us.ibm.com>
      aefaeb3d
    • R
      qemu: call drive_unplug in DetachPciDiskDevice · 0cdc9829
      Ryan Harper 提交于
      Currently libvirt doesn't confirm whether the guest has responded to the
      disk removal request.  In some cases this can leave the guest with
      continued access to the device while the mgmt layer believes that it has
      been removed.  With a recent qemu monitor command[1] we can
      deterministically revoke a guests access to the disk (on the QEMU side)
      to ensure no futher access is permitted.
      
      This patch adds support for the drive_unplug() command and introduces it
      in the disk removal paths.  There is some discussion to be had about how
      to handle the case where the guest is running in a QEMU without this
      command (and the fact that we currently don't have a way of detecting
      what monitor commands are available).
      
      Changes since v2:
       - use VIR_ERROR to report when unplug command not found
      Changes since v1:
       - return > 0 when command isn't present, < 0 on command failure
       - detect when drive_unplug command isn't present and log error
         instead of failing entire command
      Signed-off-by: NRyan Harper <ryanh@us.ibm.com>
      0cdc9829
    • A
      qemud: fix memory leak in io error events · 560ed3eb
      Anthony Liguori 提交于
      The extra data isn't being free()'d for IO error events that have a reason.
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      560ed3eb
  6. 08 12月, 2010 1 次提交
    • O
      qemu: Only build devstr when needs (attach PCI controller) · 981f7c8c
      Osier Yang 提交于
      - qemudDomainAttachPciControllerDevice: Don't build "devstr"
        if "-device" of qemu is not available, as "devstr" will only
        be used by "qemuMonitorAddDevice", which depends on "-device"
        argument of qemu is supported.
      
      - "qemudDomainSaveImageOpen": Fix indent problem.
      
      * src/qemu/qemu_driver.c
      981f7c8c