1. 03 12月, 2013 10 次提交
  2. 02 12月, 2013 3 次提交
  3. 27 11月, 2013 1 次提交
    • B
      qemu: preserve netdev MAC address during 'domxml-to-native' · 8e043864
      Bing Bu Cao 提交于
      The virsh command 'domxml-to-native' (virConnectDomainXMLToNative())
      converts all network devices to "type='ethernet'" in order to make it
      more likely that the generated command could be run directly from a
      shell (other libvirt network device types end up referencing file
      descriptors for tap devices assumed to have been created by libvirt,
      which can't be done in this case).
      
      During this conversion, all of the netdev parameters are cleared out,
      then specific items are filled in after changing the type. The MAC
      address was not one of these preserved items, and the result was that
      mac addresses in the generated commandlines were always
      00:00:00:00:00:00.
      
      This patch saves the mac address before the conversion, then
      repopulates it afterwards, so the proper mac addresses show up in the
      commandline.
      Signed-off-by: NBing Bu Cao <mars@linux.vnet.ibm.com>
      Signed-off-by: NLaine Stump <laine@laine.org>
      8e043864
  4. 26 11月, 2013 1 次提交
    • E
      storage: add network-dir as new storage volume type · ecd881b7
      Eric Blake 提交于
      In the 'directory' and 'netfs' storage pools, a user can see
      both 'file' and 'dir' storage volume types, to know when they
      can descend into a subdirectory.  But in a network-based storage
      pool, such as the upcoming 'gluster' pool, we use 'network'
      instead of 'file', and did not have any counterpart for a
      directory until this patch.  Adding a new volume type
      'network-dir' is better than reusing 'dir', because it makes
      it clear that the only way to access 'network' volumes within
      that container is through the network mounting (leaving 'dir'
      for something accessible in the local file system).
      
      * include/libvirt/libvirt.h.in (virStorageVolType): Expand enum.
      * docs/formatstorage.html.in: Document it.
      * docs/schemasa/storagevol.rng (vol): Allow new value.
      * src/conf/storage_conf.c (virStorageVol): Use new value.
      * src/qemu/qemu_command.c (qemuBuildVolumeString): Fix client.
      * src/qemu/qemu_conf.c (qemuTranslateDiskSourcePool): Likewise.
      * tools/virsh-volume.c (vshVolumeTypeToString): Likewise.
      * src/storage/storage_backend_fs.c
      (virStorageBackendFileSystemVolDelete): Likewise.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      ecd881b7
  5. 25 11月, 2013 1 次提交
  6. 22 11月, 2013 1 次提交
    • J
      Don't start a nested job in qemuMigrationPrepareAny · 98464021
      Ján Tomko 提交于
      This nested job is canceled by the first ExitMonitor call (even though
      it was not created by the corresponding EnterMonitor call), and
      again in qemuMigrationPrepareAny if qemuProcessStart failed.
      This can lead to a crash if the vm object was disposed of before calling
      qemuDomainRemoveInactive:
      0  ..62bc in virClassIsDerivedFrom (klass=0xdeadbeef,
         parent=0x7ffce4cdd270) at util/virobject.c:166
      1 ..6666 in virObjectIsClass at util/virobject.c:362
      2 ..66b4 in virObjectLock at util/virobject.c:314
      3 ..477e in virDomainObjListRemove at conf/domain_conf.c:2359
      4 ..7a64 in qemuDomainRemoveInactive at qemu/qemu_domain.c:2087
      5 ..956c in qemuMigrationPrepareAny at qemu/qemu_migration.c:2469
      
      This was added by commit e4e28220, exposed by 5a4c2374 and c7ac2519.
      
      https://bugzilla.redhat.com/show_bug.cgi?id=1018267
      98464021
  7. 21 11月, 2013 5 次提交
    • E
      qemu: Auto-generate controller for hotplugged hostdev · 881eb780
      Eric Farman 提交于
      If a SCSI hostdev is included in an initial domain XML, without a
      corresponding controller statement, one is created silently when the
      guest is booted.
      
      When hotplugging a SCSI hostdev, a presumption is that the controller
      is already present in the domain either from the original XML, or via
      an earlier hotplug.
      
        [root@xxxxxxxx ~]# cat disk.xml
        <hostdev mode='subsystem' type='scsi'>
          <source>
            <adapter name='scsi_host0'/>
            <address bus='0' target='3' unit='1088438288'/>
          </source>
        </hostdev>
        [root@xxxxxxxx ~]# virsh attach-device guest01 disk.xml
        error: Failed to attach device from disk.xml
        error: internal error: unable to execute QEMU command 'device_add': Bus 'scsi0.0' not found
      
      Since the infrastructure is in place, we can also create a controller
      silently for use by the hotplugged hostdev device.
      Signed-off-by: NEric Farman <farman@linux.vnet.ibm.com>
      881eb780
    • E
      qemu: Separate calls based on controller bus type · 6f22f95f
      Eric Farman 提交于
      For systems without a PCI bus, attaching a SCSI controller fails:
      
        [root@xxxxxxxx ~]# cat controller.xml
        <controller type='scsi' model='virtio-scsi' index='0' />
        [root@xxxxxxxx ~]# virsh attach-device guest01 controller.xml
        error: Failed to attach device from controller.xml
        error: XML error: No PCI buses available
      
      A similar problem occurs with the detach of a controller:
      
        [root@xxxxxxxx ~]# virsh detach-device guest01 controller.xml
        error: Failed to detach device from controller.xml
        error: operation failed: controller scsi:0 not found
      
      The qemuDomainXXtachPciControllerDevice routines made assumptions
      that any caller had a PCI bus.  These routines now selectively calls
      PCI functions where necessary, and assigns the device information
      type to one appropriate for the bus in use.
      Signed-off-by: NEric Farman <farman@linux.vnet.ibm.com>
      Signed-off-by: NJán Tomko <jtomko@redhat.com>
      6f22f95f
    • E
      qemu: Rename controller hotplug functions to not be PCI-specific · 271eb058
      Eric Farman 提交于
      For attach/detach of controller devices, we rename the functions to
      remove 'PCI' from their title.  The actual separation of PCI-specific
      operations will be handled in the next patch.
      Signed-off-by: NEric Farman <farman@linux.vnet.ibm.com>
      271eb058
    • C
      qemu: Add support for virt machine type with virtio-mmio devices on armv7 · c7ccd2c4
      Clark Laughlin 提交于
      These changes allow the correct virtio-blk-device and virtio-net-device
      devices to be used for the 'virt' machine type for armv7 rather than the
      PCI virtio devices.
      
      A test case was added to qemuxml2argvtest for this change.
      Signed-off-by: NClark Laughlin <clark.laughlin@linaro.org>
      c7ccd2c4
    • E
      maint: fix comma style issues: qemu · 5d509e9e
      Eric Blake 提交于
      Most of our code base uses space after comma but not before;
      fix the remaining uses before adding a syntax check.
      
      * src/qemu/qemu_cgroup.c: Consistently use commas.
      * src/qemu/qemu_command.c: Likewise.
      * src/qemu/qemu_conf.c: Likewise.
      * src/qemu/qemu_driver.c: Likewise.
      * src/qemu/qemu_monitor.c: Likewise.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      5d509e9e
  8. 19 11月, 2013 2 次提交
  9. 18 11月, 2013 3 次提交
  10. 15 11月, 2013 4 次提交
    • M
      Fix migration with QEMU 1.6 · d35ae414
      Michael Avdienko 提交于
      QEMU 1.6.0 introduced new migration status: setup
      Libvirt does not expect such string in QMP and refuses to migrate with error
      "unexpected migration status in setup"
      
      This patch fixes it.
      Signed-off-by: NJiri Denemark <jdenemar@redhat.com>
      d35ae414
    • J
      qemu: Call qemuSetupHostdevCGroup later during hotplug · 05e149f9
      Jiri Denemark 提交于
      https://bugzilla.redhat.com/show_bug.cgi?id=1025108
      
      So far qemuSetupHostdevCGroup was called very early during hotplug, even
      before we knew the device we were about to hotplug was actually
      available. By calling the function later, we make sure QEMU won't be
      allowed to access devices used by other domains.
      
      Another important effect of this change is that hopluging USB devices
      specified by vendor and product (but not by their USB address) works
      again. This was broken since v1.0.5-171-g7d763aca, when the call to
      qemuFindHostdevUSBDevice was moved after the call to
      qemuSetupHostdevCGroup, which then used an uninitialized USB address.
      05e149f9
    • M
      qemuMonitorIO: Don't use @mon after it's unrefed · f417ad07
      Michal Privoznik 提交于
      https://bugzilla.redhat.com/show_bug.cgi?id=1018267
      
      The aim of virObject refing and urefing is to tell where the object is
      to be used and when is no longer needed. Hence any object shouldn't be
      used after it has been unrefed, as we might be the last to hold the
      reference. The better way is to call virObjectUnref() *after* the last
      object usage. In this specific case, the monitor EOF handler was called
      after the qemuMonitorIO called virObjectUnref. Not only that @mon was
      disposed (which is not used in the handler anyway) but the @mon->vm
      which is causing a SIGSEGV:
      
      2013-11-15 10:17:54.425+0000: 20110: error : qemuMonitorIO:688 : internal error: early end of file from monitor: possible problem:
      qemu-kvm: -incoming tcp:01.01.01.0:49152: Failed to bind socket: Cannot assign requested address
      
      Program received signal SIGSEGV, Segmentation fault.
      qemuProcessHandleMonitorEOF (mon=<optimized out>, vm=0x7fb728004170) at qemu/qemu_process.c:299
      299         if (priv->beingDestroyed) {
      (gdb) p *priv
      Cannot access memory at address 0x0
      (gdb) p vm
      $1 = (virDomainObj *) 0x7fb728004170
      (gdb) p *vm
      $2 = {parent = {parent = {magic = 3735928559, refs = 0, klass = 0xdeadbeef}, lock = {lock = {__data = {__lock = 2, __count = 0, __owner = 20110, __nusers = 1, __kind = 0, __spins = 0, __list = {__prev = 0x0,
                  __next = 0x0}}, __size = "\002\000\000\000\000\000\000\000\216N\000\000\001", '\000' <repeats 26 times>, __align = 2}}}, pid = 0, state = {state = 0, reason = 0}, autostart = 0, persistent = 0,
        updated = 0, def = 0x0, newDef = 0x0, snapshots = 0x0, current_snapshot = 0x0, hasManagedSave = false, privateData = 0x0, privateDataFreeFunc = 0x0, taint = 304}
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      f417ad07
    • M
      qemuProcessReconnectHelper: Don't create joinable thread · 3367c21d
      Michal Privoznik 提交于
      In the qemuProcessReconnectHelper() a new thread that does all the
      interesting work is spawned. The rationale is to not block the daemon
      startup process in case of unresponsive qemu. However, the thread
      handler is a local variable which gets lost once the control goes out of
      scope. Hence the thread gets leaked. We can avoid this if the thread
      isn't made joinable.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      3367c21d
  11. 13 11月, 2013 2 次提交
  12. 12 11月, 2013 4 次提交
  13. 09 11月, 2013 1 次提交
  14. 08 11月, 2013 2 次提交
    • V
      qemu: Fix SCSI hotplug on pseries guests · efdd591d
      Vitor de Lima 提交于
      This patch moves some code in the qemuDomainAttachSCSIDisk
      function. The check for the existence of a PCI address assigned
      to the SCSI controller was moved in order to be executed only
      when needed. The PCI address of a controller is not necessary
      if QEMU_CAPS_DEVICE is supported.
      
      This fixes issues with the hotplug of SCSI disks on pseries guests.
      efdd591d
    • V
      qemu: assign PCI address to primary video card · 54e4d9d0
      Vitor de Lima 提交于
      When adding support for Q35 guests, the code to assign a PCI address
      to the primary video card was moved into Q35 and i440fx(PIIX3)
      specific functions, but no fallback was kept for other machine types
      that might have a video card.
      
      This patch remedies that by assigning a PCI address to the primary
      video card if it does not have any kind of address.  In particular,
      this fixes issues with pseries guests.
      Signed-off-by: NVitor de Lima <vitor.lima@eldorado.org.br>
      Signed-off-by: NLaine Stump <laine@laine.org>
      54e4d9d0