1. 29 7月, 2009 4 次提交
  2. 28 7月, 2009 2 次提交
  3. 27 7月, 2009 27 次提交
    • D
      Fix crashes in Xen capabilities code · dd6cd7dd
      Daniel P. Berrange 提交于
      * src/xen_internal.c: Don't free memory now owned by the virCapsPtr
         structure
      * tests/testutilsxen.c: Fix up for change in internal API
      dd6cd7dd
    • D
      Fix typo in xen capabilities code · f055724b
      Daniel P. Berrange 提交于
      f055724b
    • D
      Fill in vCPU <-> pCPU current mapping, and vCPU cpuTime for QEMU · c4a04dc0
      Daniel P. Berrange 提交于
      * src/qemu_driver.c: implement missing features in qemudDomainGetVcpus
        for 'cpu' and 'cpuTime' fields
      c4a04dc0
    • M
      Add support for attaching network/bridge NICs in QEMU driver · 85453c42
      Mark McLoughlin 提交于
      In order to hotplug a network/bridge backed NIC, we need to first create
      the tap file descriptor, add the tap interface to the bridge and then
      pass the file descriptor to the qemu process using the 'getfd' monitor
      command.
      
      Once the tapfd has been accepted, we create the network backend using
      host_net_add, supplying the name assigned to the tapfd. If this fails,
      we need to close the tapfd in qemu using the 'closefd' monitor command.
      
      If the version of qemu does not support the getfd/closefd monitor
      commands we detect "unknown command" in the getfd reply and fail the
      attach operation.
      
      * src/qemu_driver.c: add support for tapfd based hotplug in
        qemudDomainAttachNetDevice()
      85453c42
    • M
      Add SCM_RIGHTS support to QEMU monitor code · 1daaebfa
      Mark McLoughlin 提交于
      Add qemudMonitorCommandWithFd() which allows a file descriptor to be
      sent to qemu over a unix monitor socket using SCM_RIGHTS. See the
      unix(7) and cmsg(3) man pages.
      
      * src/qemu_conf.c: add a scm_fd param to qemudMonitorCommandExtra(),
        add qemudMonitorCommandWithFd(), implement SCM_RIGHTS support in
        qemudMonitorSendUnix()
      1daaebfa
    • M
      Use sendmsg() on QEMU monitor socket · 7d9576ed
      Mark McLoughlin 提交于
      Switch from using write() to using sendmsg() on QEMU's monitor socket
      so that we can add support for SCM_RIGHTS.
      
      * src/qemu_driver.c: add sendmsg() based qemudMonitorSendUnix() and use
        it when the monitor fd is a unix socket
      7d9576ed
    • M
      Factor qemudMonitorSend() out of qemudMonitorCommandExtra() · 9de2972c
      Mark McLoughlin 提交于
      Add a little helper function to write the monitor command followed by
      carriage return in a single write.
      
      This doesn't make any real difference, but allows us to more easily
      switch to using sendmsg() when using the monitor over a unix socket.
      
      * src/qemu_conf.c: split qemudMonitorSend() out
      9de2972c
    • M
      Clean up error handling in qemudDomainAttachNetDevice() · be44cabd
      Mark McLoughlin 提交于
      In subsequent patches we're going to have a file descriptor to close
      too, so centralize the error handling cleanups to make things easier.
      
      * src/qemu_conf.c: in qemudDomainAttachNetDevice() consolidate the
        error handling cleanups together
      be44cabd
    • M
      Make qemuBuildHostNetStr() take tapfd as a string · 32db8dd7
      Mark McLoughlin 提交于
      With hotplug, we're going to want to pass a tapfd name rather than an
      actual file descriptor, so prepare the way by passing a string tapfd to
      qemuBuildHostNetStr().
      
      * src/qemu_conf.h: qemuBuildHostNetStr() takes a string tapfd now
      
      * src/qemu_conf.c: pass qemuBuildHostNetStr() a string rather than an
        actual file descriptor
      
      * src/qemu_driver.c: update qemudDomainAttachNetDevice() for change
      32db8dd7
    • M
      Move vnet_hdr logic into qemudNetworkIfaceConnect() and export it · a3f33b65
      Mark McLoughlin 提交于
      * src/qemu_conf.h: export qemudNetworkIfaceConnect()
      
      * src/qemu_conf.c: move vnet_hdr logic into qemudNetworkIfaceConnect()
        since we need it for hotplug too
      a3f33b65
    • M
      Only probe qemu for machine types when binary changes · 707302b2
      Mark McLoughlin 提交于
      By probing for qemu machine types, we increased the time of a
      GetCapabilities call from 100us to a whopping 60ms.
      
      This patch takes the approach of only probing for machine types
      when the mtime of the emulator binary changed since the last time
      the capabilities were generated.
      
      * src/capabilities.h: cache the emulator binary mtime
      
      * src/qemu_conf.c: add qemudGetOldMachines() to copy the machine
        types from the old caps struct if the mtime for the binary hasn't
        changed
      
      * src/qemu_conf.h, src/qemu_driver.c: pass the old caps pointer to
        qemudCapsInit()
      707302b2
    • M
      Add canonical machine name to capabilities output · 0f15d034
      Mark McLoughlin 提交于
      e.g. <machine canonical='pc'>pc-0.11</machine>
      
      * src/capabilities.c: output the canonical machine names in the
        capabilities output, if available
      
      * docs/schemas/capabilities.rng: add the new attribute
      0f15d034
    • M
      Probe QEMU directly for machine aliases if not found in capabilties · c14c6b08
      Mark McLoughlin 提交于
      Not all possible emulators are actually in the capabilities, so if we
      don't find the supplied emulator we should probe it directly for machine
      types.
      
      * src/qemu_driver.c: add qemudCanonicalizeMachineDirect() to directly
        probe an emulator for the canonical machine type
      c14c6b08
    • M
      Canonicalize qemu machine types · be291b33
      Mark McLoughlin 提交于
      In qemu-0.11 there is a 'pc-0.10' machine type which allows you to run
      guests with a machine which is compatible with the pc machine in
      qemu-0.10 - e.g. using the original PCI class for virtio-blk and
      virtio-console and disabling MSI support in virtio-net. The idea here
      is that we don't want to suprise guests by changing the hardware when
      qemu is updated.
      
      I've just posted some patches for qemu-0.11 which allows libvirt to
      canonicalize the 'pc' machine alias to the latest machine version.
      
      This patches makes us use that so that when a guest is configured to
      use the 'pc' machine type, we resolve that to 'pc-0.11' machine and
      save that in the guest XML.
      
      See also:
      
        https://fedoraproject.org/wiki/Features/KVM_Stable_Guest_ABI
      
      * src/qemu_conf.c: add qemudCanonicalizeMachine() to canonicalize
        the machine type according to the machine aliases in capabilities
      
      * src/qemu_driver.c: parse aliases in qemudParseMachineTypesStr()
      be291b33
    • M
      Add virCapsGuestMachine structure · 38fd207e
      Mark McLoughlin 提交于
      A subsequent commit will add a "canonical" field to this structure,
      this patch basically just prepares the way for that.
      
      The new type is added, along with virCapabilitiesAlloc/FreeMachines()
      helpers and a whole bunch of code to make the transition.
      
      One quirk is that virCapabilitiesAddGuestDomain() and
      virCapabilitiesAddGuest() take ownership of the machine list rather
      than duping it. This makes sense to avoid needless copying.
      
      * src/capabilities.h: add the virCapsGuestMachine struct and use it
        in virCapsGuestDomainInfo, add prototypes for new functions and
        update the AddGuest() prototypes
      
      * src/capabilities.c: add code for allocating and freeing the new
        type, change the machines parameter to AddGuest() etc.
      
      * src/libvirt_private.syms: export the new helpers
      
      * src/qemu_conf.c: update all the machine type code to use the new
        struct
      
      * src/xen_internal.c: ditto
      
      * tests/testutilsqemu.c: ditto
      38fd207e
    • M
      Probe for QEMU machine types · d412487e
      Mark McLoughlin 提交于
      Currently we hardcode the QEMU machine types. We should really just
      parse the output of 'qemu -M ?' so the lists don't get out of sync.
      
      xenner doesn't support '-M ?', so we still need to hardcode that.
      
      The horrible (const char *const *) is removed in a subsequent patch.
      
      * src/qemu_conf.c: kill the arch_info*machines tables, retain the
        hardcoded xenner machine type, add qemudProbeMachineTypes() to
        run and parse 'qemu -M ?' and use it in qemudCapsInitGuest()
      d412487e
    • M
      Cleanup qemu binary detection logic in qemudCapsInitGuest() · 7803e6f3
      Mark McLoughlin 提交于
      There's no need for the hasbase/hasaltbase confusion, just store the
      first binary path found in a variable.
      
      * src/qemu_conf.c: kill hasbase/hasaltbase logic in qemudCapsInitGuest()
      7803e6f3
    • M
      ESX driver accept VI API version 4.0 · 84255632
      Matthias Bolte 提交于
      * src/esx/esx_driver.c src/esx/esx_vi.c src/esx/esx_vi.h
        src/esx/esx_vmx.c src/esx/esx_vmx.h: extend the VI API version checks
        to accept version 4.0 and takes care of the virtualHW.version change
        from 4 to 7.
      84255632
    • M
      Allow leading dots in VMX config entry names · b557a368
      Matthias Bolte 提交于
      * src/conf.c: the virConfParser must accept leading dot when in VMX mode
      b557a368
    • M
      Add no_verify query parameter to ESX URIs · e4e50f52
      Matthias Bolte 提交于
      * src/esx/esx_driver.c src/esx/esx_util.c src/esx/esx_util.h
        src/esx/esx_vi.c src/esx/esx_vi.h: adds a no_verify query parameter to
        stop libcurl from verifying theserver certificate for the https
        transport.
      e4e50f52
    • M
      Fix memory leaks in esxDomainDumpXML · e74d6c50
      Matthias Bolte 提交于
      * src/esx/esx_driver.c: remove leaks in esxDomainDumpXML() and simplify
        esxDomainXMLFromNative()
      e74d6c50
    • C
      5388607f
    • C
      115c02e8
    • C
      test: Implement BlockStats and InterfaceStats · b4ad955d
      Cole Robinson 提交于
      We fake stats values based on the current time, similar to how it's done
      for cpu time.
      b4ad955d
    • C
      test: Generate net interface names when assigning XML. · 3b4a542c
      Cole Robinson 提交于
      We need interface names to implement InterfaceStats.
      3b4a542c
    • C
      Don't allow NULL paths for BlockStats and InterfaceStats · 13f3d40c
      Cole Robinson 提交于
      Do the check in libvirt.c, to save drivers from the burden. This changes
      behavior slightly in the qemu driver: we no longer explictly error if
      passed an empty string. An error will still be thrown when the device
      lookup fails.
      13f3d40c
    • C
      python: Raise exceptions if virDomain*Stats fail. · 3c2051f8
      Cole Robinson 提交于
      The generator couldn't tell that the stats return values were pointers.
      Stick a white list in the function which tries to make this distinction.
      3c2051f8
  4. 25 7月, 2009 3 次提交
  5. 24 7月, 2009 4 次提交