1. 20 5月, 2011 3 次提交
  2. 19 5月, 2011 13 次提交
    • D
      Don't generate cookies with v2 migration protocol. · 6b937b24
      Daniel P. Berrange 提交于
      The v2 migration protocol had a limit on cookie length that was
      too small to be useful for QEMU. Avoid generating cookies with
      v2 protocol, so that old libvirtd can still reliably migrate a
      guest to new libvirtd uses v2 protocol.
      
      * src/qemu/qemu_driver.c: Avoid migration cookies with v2
        migration
      6b937b24
    • D
      Fix QEMU migration cookie crash for guests with no graphics · 03f88326
      Daniel P. Berrange 提交于
      When generating a cookie for a guest with no data, the
      QEMU_MIGRATION_COOKIE_GRAPHICS flag was set even if no
      graphics data was added. Avoid setting the flag unless
      it was needed, also add a safety check for mig->graphics
      being non-NULL
      
      * src/qemu/qemu_migration.c: Avoid cookie crash for guest
        with no graphics
      03f88326
    • D
      Ensure p2p and direct migration use the new v3 protocol if available · 2f3c6826
      Daniel P. Berrange 提交于
      The internal virDomainMigratePeer2Peer and virDomainMigrateDirect
      helper methods were not checking whether the target supports the
      v3 migration protocol.
      
      * src/libvirt.c: Use v3 migration protocol for p2p/direct
        migration if available.
      2f3c6826
    • D
      Blank out the 'listenAddr' parameter if empty string · 4bfe396e
      Daniel P. Berrange 提交于
      Some bogus apps are generating a VNC/SPICE/RFB listen attribute
      with no content. This then causes a failure with the graphics
      migration cookie parsing. Blank out the 'listenAddr' parameter
      after parsing domain XML if it is the empty string, so the host
      default takes over
      
      * src/qemu/qemu_migration.c: Blank out listenAddr parameter
        if empty
      4bfe396e
    • E
      remote: remove special case for getting version · 8fcbc0c6
      Eric Blake 提交于
      The on-the-wire protocol is identical; XDR guarantees that
      both 'hyper' and 'unsigned hyper' are transmitted as 8 bytes.
      
      * src/remote/remote_protocol.x (remote_get_version_ret)
      (remote_get_lib_version_ret): Match public API.
      * daemon/remote_generator.pl: Drop special case.
      * src/remote_protocol-structs: Reflect updated type.
      8fcbc0c6
    • E
      build: silence clang false positive · 7647422a
      Eric Blake 提交于
      Clang couldn't quite see that the same condition of
      (flags & VIR_DOMAIN_MEM_CONFIG) is used twice, such that
      the second block is guaranteed that def was assigned in
      the first block.
      
      * src/libxl/libxl_driver.c (libxlDomainSetMemoryFlags): Add a hint
      for clang.
      7647422a
    • E
      virsh: optimize creation of default connection · d218344e
      Eric Blake 提交于
      Ramon de Carvalho Valle reported a problem with:
      virsh connect qemu:///system
      as a non-root user.  The real root problem appears to be a regression
      in libvirtd being auto-started on the default qemu:///session URI;
      however, the symptom points to an independent flaw in virsh - we
      shouldn't be wasting efforts on making a connection if we aren't going
      to be using that connection.  Fixing virsh avoids Ramon's issue, while
      I work in the meantime to fix the real libvirtd regression.
      
      This patch looks big, but that's because 'gcc -Wmissing-field-initializers'
      gets triggered by './autobuild.sh --enable-compile-warnings=error', so I
      had to add 0 initialization to everyone (rather than my preference of
      just adding the non-zero flags to virshCmds and to cmdConnect).
      
      Meanwhile, if you use 'virsh -c URI', the connection must succeed; this
      patch _only_ optimizes the default connection to be deferred to a later
      point where we know if a particular command to be run needs a connection.
      
      * tools/virsh.c (VSH_CMD_FLAG_NOCONNECT): New flag.
      (vshCmdDef): Add new flags field.
      (vshCommandRun): Honor new flag.
      (domManagementCmds, domMonitoringCmds, storagePoolCmds)
      (storageVolCmds, networkCmds, nodedevCmds, ifaceCmds)
      (nwfilterCmds, secretCmds, virshCmds, snapshotCmds)
      (hostAndHypervisorCmds): Populate new field.
      (vshReconnect): Don't warn on initial connection.
      d218344e
    • M
      Improve invalid argument checks for the public API · 4d2a1896
      Matthias Bolte 提交于
      4d2a1896
    • M
      Clarify that virDomainGet(Memory|Blkio)Parameters doesn't support subsets · 191e1ec6
      Matthias Bolte 提交于
      Improve invalid argument checks in the size query case. The drivers already
      relied on this unchecked behavior.
      
      Relax the implementation of virDomainGet(Memory|Blkio)MemoryParameters
      in the drivers and allow to pass more memory than necessary for all
      parameters.
      191e1ec6
    • M
    • M
      Clarify that virDomainSetSchedulerParameters(Flags) can take subsets · d870ec36
      Matthias Bolte 提交于
      Add invalid argument checks for params and nparams to the public API
      and remove them from the drivers (e.g. xend).
      
      Add subset handling to libxl and test drivers.
      d870ec36
    • M
      Clarify the semantic of virDomainGetSchedulerParameters arguments · e430c0d0
      Matthias Bolte 提交于
      params and nparams are essential and cannot be NULL. Check this in
      libvirt.c and remove redundant checks from the drivers (e.g. xend).
      
      Instead of enforcing that nparams must point to exact same value as
      returned by virDomainGetSchedulerType relax this to a lower bound
      check. This is what some drivers (e.g. xen hypervisor and esx)
      already did. Other drivers (e.g. xend) didn't check nparams at all
      and assumed that there is enough space in params.
      
      Unify the behavior in all drivers to a lower bound check and update
      nparams to the number of valid values in params on success.
      e430c0d0
    • M
      Clarify semantic of nparams argument of virDomainGetSchedulerType · 7b2f20b1
      Matthias Bolte 提交于
      Some drivers assumed it can be NULL (e.g. qemu and lxc) and check it
      before assigning to it, other drivers assumed it must be non-NULL
      (e.g. test and esx) and just assigned to it.
      
      Unify this to nparams being optional and document it.
      7b2f20b1
  3. 18 5月, 2011 9 次提交
    • C
      Fix messages using VIR_ERR_XML_ERROR · ed97be61
      Cole Robinson 提交于
      This error code has existed since the dawn of time, yet the messages it
      generates are almost universally busted. Here's a small sampling:
      
      src/conf/domain_conf.c:4889 : XML description for missing root element is not well formed or invalid
      src/conf/domain_conf.c:4951 : XML description for unknown device type is not well formed or invalid
      src/conf/domain_conf.c:5460 : XML description for maximum vcpus must be an integer is not well formed or invalid
      src/conf/domain_conf.c:5468 : XML description for invalid maxvcpus %(count)lu is not well formed or invalid
      
      Fix up the error code to instead be
      
      XML error: <msg>
      
      Adjust the few locations that were using the original correctly (or shouldn't
      have been using the error code at all).
      
      v2:
          Fix wording of error code without a passed argument
      ed97be61
    • E
      libvirt.h: consolidate typed parameter handling · 824dcaff
      Eric Blake 提交于
      The new type is identical to the three old types that it replaces,
      and by creating a common type, this allows future patches to share
      common code that manipulates typed parameters.
      
      This change is backwards-compatible in API (recompilation works
      without any edits) and ABI (an older client that has not been
      recompiled uses the same layout) for code using only public
      names; only code using private names (those beginning with _)
      will have to adapt.
      
      * include/libvirt/libvirt.h.in (virTypedParameterType)
      (VIR_TYPED_PARAM_FIELD_LENGTH, _virTypedParameter): New enum,
      macro, and type.
      (virSchedParameter, virBlkioParameter, virMemoryParameter):
      Rewrite in terms of a common type, while keeping all old public
      names for backwards compatibility.
      (struct _virSchedParameter, struct _virBlkioParameter)
      (struct _virMemoryParameter): Delete - these are private names.
      * python/generator.py (enum): Cope with the refactoring.
      824dcaff
    • E
      build: update to latest gnulib · f3cfc99e
      Eric Blake 提交于
      * .gnulib: Update, for bootstrap and other fixes.
      * bootstrap: Resynchronize with gnulib.
      f3cfc99e
    • D
      Add support for 'passthru' mode for direct network interfaces · 5252a06d
      Dirk Herrendorefer 提交于
      starting with kernel 2.6.38 macvtap supports a 'passthru' mode for
      attaching virtual functions of a SRIOV capable network card directly to a VM.
      This patch adds the capability to configure such a device.
      Signed-off-by: NDirk Herrendoerfer <d.herrendoerfer@herrendoerfer.name>
      5252a06d
    • M
      qemu: fix typo in spice migration code · 45b28f7c
      Michal Privoznik 提交于
      This typo caused XPath returning improper value and thus not
      working spice after migration.
      45b28f7c
    • H
      virsh: add parameters --live, --config and --current to cmd schedinfo · 42af2443
      Hu Tao 提交于
      This enables user to modify cpu.shares even when domain is inactive.
      42af2443
    • H
      remote: introduce remoteSetSchedulerParametersFlags · bb9f1bbf
      Hu Tao 提交于
      support for virDomainSetSchedulerParametersFlags of remote driver.
      bb9f1bbf
    • H
      qemu: introduce qemuSetSchedulerParametersFlags · a9189e2c
      Hu Tao 提交于
      Support for virDomainSetSchedulerParametersFlags of qemu driver.
      a9189e2c
    • E
      sched: adjust parameter values to make current = 0 · 33645d44
      Eric Blake 提交于
      See virDomainMemoryModFlags for precedent.
      
      * include/libvirt/libvirt.h.in (virDomainSchedParameterFlags): Set
      CURRENT as a synonym to 0.
      33645d44
  4. 17 5月, 2011 15 次提交