1. 08 12月, 2009 9 次提交
    • D
      Add a 'format' arg to qemuMonitorChangeMedia() since JSON will support it · 8c12b20c
      Daniel P. Berrange 提交于
      The current QEMU disk media change does not support setting the
      disk format. The new JSON monitor will support this, so add an
      extra parameter to pass this info in
      
      * src/qemu/qemu_driver.c: Pass in disk format when changing media
      * src/qemu/qemu_monitor.h, src/qemu/qemu_monitor.c,
        src/qemu/qemu_monitor_text.c, src/qemu/qemu_monitor_text.h:
        Add a 'format' arg to qemuMonitorChangeMedia()
      8c12b20c
    • D
      Fix migration cancellation for QEMU · 3fa3cff7
      Daniel P. Berrange 提交于
      * src/qemu/qemu_monitor_text.c: Add missing underscore in the
        migrate_cancel monitor command impl
      3fa3cff7
    • D
      Move qemuMonitorEscape + migrate status enum into shared monitor code · fa1e4759
      Daniel P. Berrange 提交于
      The qemuMonitorEscape() method, and the VIR_ENUM for migration
      status will be needed by the JSON monitor too, so move that code
      into the shared qemu_monitor.c file instead of qemu_monitor_text.c
      
      * src/qemu/qemu_monitor.h: Declare qemuMonitorMigrationStatus enum
        and qemuMonitorEscapeArg and qemuMonitorEscapeShell methods
      * src/qemu/qemu_monitor.c: Implement qemuMonitorMigrationStatus enum
        and qemuMonitorEscapeArg and qemuMonitorEscapeShell methods
      * src/qemu/qemu_monitor_text.c: Remove above methods/enum
      fa1e4759
    • D
      Fix crash when deleting monitor while a command is in progress · 79533da1
      Daniel P. Berrange 提交于
      If QEMU shuts down while we're in the middle of processing a
      monitor command, the monitor will be freed, and upon cleaning
      up we attempt to do  qemuMonitorUnlock(priv->mon) when priv->mon
      is NULL.
      
      To address this we introduce proper reference counting into
      the qemuMonitorPtr object, and hold an extra reference whenever
      executing a command.
      
      * src/qemu/qemu_driver.c: Hold a reference on the monitor while
        executing commands, and only NULL-ify the priv->mon field when
        the last reference is released
      * src/qemu/qemu_monitor.h, src/qemu/qemu_monitor.c: Add reference
        counting to handle safe deletion of monitor objects
      79533da1
    • G
      udev_device_get_devpath might return NULL · 1f604116
      Guido Günther 提交于
      Fix crash on strdup in that case.
      1f604116
    • D
      Fix a compilation failure if yajl not avail · a4e09c1e
      Daniel Veillard 提交于
      configure:     yajl: no
      CC     libvirt_util_la-json.lo
      util/json.c:32:27: error: yajl/yajl_gen.h: No such file or directory
      util/json.c:33:29: error: yajl/yajl_parse.h: No such file or directory
      
      * src/util/json.c: remove the includes if yajl not configured in
      a4e09c1e
    • M
      Fix compilation for configure --disable-nls · 1449392d
      Matthias Bolte 提交于
      1449392d
    • M
      vbox: Update IIDs from version 3.1-beta2 to 3.1-final · 74c1c534
      Matthias Bolte 提交于
      This solves the 'nsIEventQueue object is null' error when trying
      to connect to a VirtualBox 3.1 hypervisor instance.
      74c1c534
    • D
      Fix ReprotError vs ReportError typo in JSON code · 0a4283cb
      Daniel P. Berrange 提交于
      * src/util/json.c: Fix ReprotError typo when YAJL is not available
      0a4283cb
  2. 07 12月, 2009 1 次提交
    • D
      Introduce a simple API for handling JSON data · 9428f2ce
      Daniel P. Berrange 提交于
      This introduces simple API for handling JSON data. There is
      an internal data structure 'virJSONValuePtr' which stores a
      arbitrary nested JSON value (number, string, array, object,
      nul, etc).  There are APIs for constructing/querying objects
      and APIs for parsing/formatting string formatted JSON data.
      
      This uses the YAJL library for parsing/formatting from
      
       http://lloyd.github.com/yajl/
      
      * src/util/json.h, src/util/json.c: Data structures and APIs
        for representing JSON data, and parsing/formatting it
      * configure.in: Add check for yajl library
      * libvirt.spec.in: Add build requires for yajl
      * src/Makefile.am: Add json.c/h
      * src/libvirt_private.syms: Export JSON symbols to drivers
      9428f2ce
  3. 05 12月, 2009 2 次提交
  4. 04 12月, 2009 4 次提交
    • J
      Support for interface model='netfront' · dddad4bc
      Jiri Denemark 提交于
      Xen HVM guests with PV drivers end up with two network interfaces for
      each configured interface. One of them being emulated by qemu and the
      other one paravirtual. As this might not be desirable, the attached
      patch provides a way for users to specify that only paravirtual network
      interface should be presented to the guest.
      
      The configuration was inspired by qemu/kvm driver, for which users can
      specify model='virtio' to use paravirtual network interface.
      
      The patch adds support for model='netfront' which results in
      type=netfront instead of type=ioemu (or nothing for newer xen versions)
      in guests native configuration. Xen's qemu ignores interfaces with
      type != ioemu and only paravirtual network device will be seen in the
      guest.
      
      Four possible configuration scenarios follow:
      
      - no model specified in domain's XML
          - libvirt will behave like before this change; it will set
            type=ioemu for HVM guests on xen host which is not newer than
            XEND_CONFIG_MAX_VERS_NET_TYPE_IOEMU
          - covered by existing tests
      
      - PV guest, any model
          - no functional change, model is passed as is (and ignored by the
            hypervisor)
          - covered by existing tests (e.g., *-net-e1000.*)
      - HVM guest, model=netfront
          - type is set to "netfront", model is not specified
          - covered by new *-net-netfront.* tests
      
      - HVM guest, model != netfront
          - type is set to "ioemu", model is passed as is
          - covered by new *-net-ioemu.* tests
      
      The fourth scenario feels like a regression for xen newer than
      XEND_CONFIG_MAX_VERS_NET_TYPE_IOEMU as users who had a model specified
      in their guest's configuration won't see a paravirtual interface in
      their guests any more. On the other hand, the reason for specifying a
      model is most likely the fact that they want to use such model which
      implies emulated interface. Users of older xen won't be affected at all
      as their xen provides paravirtual interface regardless of the type used.
      
      - src/xen/xend_internal.c: add netfront support for the xend backend
      - src/xen/xm_internal.c: add netfront support for the XM serialization too
      dddad4bc
    • P
      vbox: Add support for version 3.1 · 834d6547
      Pritesh Kothari 提交于
      Also fixed serial port configuration which was broken due to recent
      change in virDomainChrDef where targetType was newly added.
      
      * src/Makefile.am: add new files
      * src/vbox/vbox_driver.c: add case for version 3.1
      * src/vbox/vbox_tmpl.c: refactor common patterns into macros, support for
        version 3.1, serial port configuration fix
      * src/vbox/vbox_CAPI_v3_1.h, src/vbox/vbox_V3_1.c: generated code
      834d6547
    • M
      Add virIndexToDiskName and fix mapping gap · 63166a4e
      Matthias Bolte 提交于
      esxVMX_IndexToDiskName handles indices up to 701. This limit comes
      from a mapping gap in virDiskNameToIndex:
      
        sdzy -> 700
        sdzz -> 701
        sdaaa -> 728
        sdaab -> 729
      
      This line in virDiskNameToIndex causes this gap:
      
        idx = (idx + i) * 26;
      
      Fixing it by altering this line to:
      
        idx = (idx + (i < 1 ? 0 : 1)) * 26;
      
      Also add a new version of virIndexToDiskName that handles the inverse
      mapping for arbitrary indices.
      
      * src/esx/esx_vmx.[ch]: remove esxVMX_IndexToDiskName
      * src/util/util.[ch]: add virIndexToDiskName and fix mapping gap
      * tests/esxutilstest.c: update test to verify that the gap is fixed
      63166a4e
    • M
      Fix some locking issues · 7a18fbee
      Matthias Bolte 提交于
      * src/conf/domain_conf.c: don't call virDomainObjUnlock twice
      * src/qemu/qemu_driver.c: relock driver lock if an error occurs in
        qemuDomainObjBeginJobWithDriver, enter/exit monitor with driver
        in qemudDomainSave
      7a18fbee
  5. 30 11月, 2009 1 次提交
  6. 27 11月, 2009 1 次提交
  7. 26 11月, 2009 3 次提交
  8. 24 11月, 2009 2 次提交
  9. 23 11月, 2009 3 次提交
    • D
      Support QEMU's virtual FAT block device driver · e7c78b0a
      Daniel P. Berrange 提交于
      Introduce a new type="dir"  mode for <disks> that allows use of
      QEMU's  virtual FAT block device driver. eg
      
          <disk type='dir' device='floppy'>
            <source dir='/tmp/test'/>
            <target dev='fda' bus='fdc'/>
            <readonly/>
          </disk>
      
      gets turned into
      
        -drive file=fat:floppy:/tmp/test,if=floppy,index=0
      
      Only read-only disks are supported with virtual FAT mode
      
      * src/conf/domain_conf.c, src/conf/domain_conf.h: Add type="dir"
      * docs/schemas/domain.rng: Document new disk type
      * src/xen/xend_internal.c, src/xen/xm_internal.c: Raise error for
        unsupported disk types
      * tests/qemuxml2argvdata/qemuxml2argv-disk-cdrom-empty.args: Fix
        empty disk file handling
      * tests/qemuxml2argvdata/qemuxml2argv-disk-drive-fat.args,
        tests/qemuxml2argvdata/qemuxml2argv-disk-drive-fat.xml,
        tests/qemuxml2argvdata/qemuxml2argv-floppy-drive-fat.args,
        tests/qemuxml2argvdata/qemuxml2argv-floppy-drive-fat.xml
        tests/qemuxml2argvtest.c: Test QEMU vitual FAT driver
      * src/qemu/qemu_conf.c: Support generating fat:/some/dir type
        disk args
      * src/security/security_selinux.c: Temporarily skip labelling
        of directory based disks
      e7c78b0a
    • D
      Alternate CPU affinity impl to cope with NR_CPUS > 1024 · a73cd93b
      Daniel P. Berrange 提交于
      The cpu_set_t type can only cope with NR_CPUS <= 1024, beyond this
      it is neccessary to use alternate CPU_SET maps with a dynamically
      allocated CPU map
      
      * src/util/processinfo.c: Support new unlimited size CPU set type
      a73cd93b
    • D
      Pull schedular affinity code out into a separate module · 37f415da
      Daniel P. Berrange 提交于
      * src/Makefile.am: Add processinfo.h/processinfo.c
      * src/util/processinfo.c, src/util/processinfo.h: Module providing
        APIs for getting/setting process CPU affinity
      * src/qemu/qemu_driver.c: Switch over to new APIs for schedular
        affinity
      * src/libvirt_private.syms: Export virProcessInfoSetAffinity
        and virProcessInfoGetAffinity to internal drivers
      37f415da
  10. 21 11月, 2009 1 次提交
    • D
      Release of libvirt-0.7.4 · 040e80f7
      Daniel Veillard 提交于
      0.7.3 was broken
      
      * configure.in docs/news.html.in: release of 0.7.4
      * configure.in libvirt.spec.in: require netcf >= 0.1.4
      * src/Makefile.am: node_device/node_device_udev.h was missing from
        NODE_DEVICE_DRIVER_UDEV_SOURCES breaking compilation on platforms with
        udev
      040e80f7
  11. 20 11月, 2009 3 次提交
    • D
      504262 Check for duplicated UUID in XM Xen defines · 776b6758
      Daniel Veillard 提交于
      * src/xen/xm_internal.c: the XM driver was not checking for previously
        defined UUID on new defines. Similar to virDomainObjIsDuplicate()
        behaviour.
      776b6758
    • S
      qemu-kvm needs -enable-kvm flag for VT optimization · b827338a
      Steve Yarmie 提交于
      Recent qemu releases require command option '-enable-qemu' in order
      for the kvm functionality be activated. Libvirt needs to pass this flag
      to qemu when starting a domain. Note that without the option,
      even if both the kernel and qemu support KVM, KVM will not be activated
      and VMs will be very slow.
      
      * src/qemu/qemu_conf.h src/qemu/qemu_conf.c: parse the extra command
        line option from help and add it when running kvm
      * tests/qemuhelptest.c: this modified the flags output for qemu-0.10.5
        and qemu-kvm-0.11.0-rc2 regression tests
      b827338a
    • S
      fix deprecated iptables command syntax · 264f3dda
      Steve Yarmie 提交于
      * src/util/iptables.c: `--option !  this` is deprecated in favor of
        `! --option this` syntax, change the output command accordingly
      264f3dda
  12. 19 11月, 2009 4 次提交
    • D
      remove sysfs_path and parent_sysfs_path from XML · 2cdb665b
      Dave Allan 提交于
      Erroneously included the sysfs_path and parent_sysfs_path elements in
      the node device xml, they were not supposed to show up there
      
      * src/conf/node_device_conf.c: remove the output of the 2 fields
      2cdb665b
    • D
      Removing devicePath member from dev struct · f2f656d4
      Dave Allan 提交于
      I realized that I inadvertently added a member to the def struct to
      contain each device's sysfs path when there was an existing member in the
      dev struct for "OS specific path to device metadat, eg sysfs"  Since the
      udev backend needs to record the sysfs path while it's in the process of
      creating the device, before the dev struct gets allocated, I chose to
      remove the member from the dev struct.
      
      * src/conf/node_device_conf.c src/conf/node_device_conf.h
        src/node_device/node_device_driver.c src/node_device/node_device_hal.c
        src/node_device/node_device_udev.c: remove devicePath from the
        structure and use def->sysfs_path instead
      f2f656d4
    • D
      report OOM in two places in node_device_driver.c · 0fe55374
      Dave Allan 提交于
      * src/node_device/node_device_driver.c: two places where not calling
        virReportOOMError after strdup failure
      0fe55374
    • D
      Ensure driver lock is released when entering QEMU monitor · 278e9478
      Daniel P. Berrange 提交于
      The qemudStartVMDaemon() and several functions it calls use
      the QEMU monitor. The QEMU driver is locked while this function
      is executing, so it is rquired to release the driver lock and
      reacquire it either side of issuing a monitor command. It
      failed todo so, leading to deadlock
      
      * qemu/qemu_driver.c: Release driver when in qemudStartVMDaemon
        and things it calls
      278e9478
  13. 17 11月, 2009 2 次提交
  14. 16 11月, 2009 1 次提交
  15. 15 11月, 2009 3 次提交
    • M
      esx: Fix CPU clock Hz to MHz conversion · d42cfb4e
      Matthias Bolte 提交于
      d42cfb4e
    • M
      esx: Fix memory leak in esxVI_HostCpuIdInfo_Free() · 03a155a2
      Matthias Bolte 提交于
      03a155a2
    • M
      esx: Fix MAC address formatting · 645f4aca
      Matthias Bolte 提交于
      VMware uses two MAC address prefixes: 00:0c:29 and 00:50:56. The 00:0c:29
      prefix is used for ESX server generated addresses. The 00:50:56 prefix is
      split into two parts. MAC addresses above 00:50:56:3f:ff:ff are generated
      by a vCenter. The rest of the 00:50:56 prefix can be assigned manually.
      Any MAC address within the 00:0c:29 and 00:50:56 prefix can be specified
      in a domain XML config and the driver will handle the details internally.
      
      * src/esx/esx_vmx.c: fix MAC address formatting
      * tests/xml2vmxdata/*: update test files accordingly
      645f4aca