1. 06 1月, 2015 2 次提交
  2. 18 12月, 2014 2 次提交
  3. 17 12月, 2014 1 次提交
  4. 15 12月, 2014 3 次提交
  5. 14 12月, 2014 1 次提交
    • L
      qemu: add a qemuInterfaceStopDevices(), called when guest CPUs stop · c5a54917
      Laine Stump 提交于
      We now have a qemuInterfaceStartDevices() which does the final
      activation needed for the host-side tap/macvtap devices that are used
      for qemu network connections. It will soon make sense to have the
      converse qemuInterfaceStopDevices() which will undo whatever was done
      during qemuInterfaceStartDevices().
      
      A function to "stop" a single device has also been added, and is
      called from the appropriate place in qemuDomainDetachNetDevice(),
      although this is currently unnecessary - the device is going to
      immediately be deleted anyway, so any extra "deactivation" will be for
      naught. The call is included for completeness, though, in anticipation
      that in the future there may be some required action that *isn't*
      nullified by deleting the device.
      
      This patch is a part of a more complete fix for:
      
        https://bugzilla.redhat.com/show_bug.cgi?id=1081461
      c5a54917
  6. 11 12月, 2014 1 次提交
    • M
      network: Bring netdevs online later · 82977058
      Matthew Rosato 提交于
      Currently, MAC registration occurs during device creation, which is
      early enough that, during live migration, you end up with duplicate
      MAC addresses on still-running source and target devices, even though
      the target device isn't actually being used yet.
      This patch proposes to defer MAC registration until right before
      the guest can actually use the device -- In other words, right
      before starting guest CPUs.
      Signed-off-by: NMatthew Rosato <mjrosato@linux.vnet.ibm.com>
      Signed-off-by: NLaine Stump <laine@laine.org>
      82977058
  7. 10 12月, 2014 1 次提交
  8. 09 12月, 2014 1 次提交
    • L
      qemu: always use virDomainNetGetActualBridgeName to get interface's bridge · 4aae2ed6
      Laine Stump 提交于
      qemuNetworkIfaceConnect() used to have a special case for
      actualType='network' (a network with forward mode of route, nat, or
      isolated) to call the libvirt public API to retrieve the bridge being
      used by a network. That is no longer necessary - since all network
      types that use a bridge and tap device now get the bridge name stored
      in the ActualNetDef, we can just always use
      virDomainNetGetActualBridgeName() instead.
      
      (an audit of the two callers to qemuNetworkIfaceConnect() confirms
      that it is never called for any other type of network, so the dead
      code in the else statement (logging an internal error if it is called
      for any other type of network) is eliminated in the process.)
      4aae2ed6
  9. 03 12月, 2014 1 次提交
    • J
      Replace virNetworkFree with virObjectUnref · 121c09a9
      John Ferlan 提交于
      Since virNetworkFree will call virObjectUnref anyway, let's just use that
      directly so as to avoid the possibility that we inadvertently clear out
      a pending error message when using the public API.
      121c09a9
  10. 02 12月, 2014 1 次提交
    • J
      hotplug: Resolve Coverity FORWARD_NULL · 59802f23
      John Ferlan 提交于
      Coverity complained that because the cfg->macFilter call checked
      net->ifname != NULL before calling ebtablesRemoveForwardAllowIn, then
      the virNetDevOpenvswitchRemovePort call should have the same check.
      
      However, if I move the ebtables call prior to the check for TYPE_DIRECT
      (where there is a VIR_FREE(net->ifname)), then it seems Coverity is
      happy.  Since firewall info is tacked on last during setup, removing
      it in the opposite order of initialization seems to be natural anyway
      59802f23
  11. 01 12月, 2014 2 次提交
  12. 19 11月, 2014 1 次提交
  13. 15 11月, 2014 1 次提交
  14. 01 11月, 2014 1 次提交
    • P
      hotplug: fix char device detach · e7e05801
      Pavel Hrdina 提交于
      Hotplugging and hotunplugging char devices is only supported through
      '-device' and the check for device capability should be independently.
      
      Coverity also complains about 'tmpChr->info.alias' could be NULL and we
      are dereferencing it but it somehow only in this case don't recognize
      that the value is set by 'qemuAssignDeviceChrAlias' so it's clearly
      false positive. Add sa_assert to make coverity happy.
      Signed-off-by: NPavel Hrdina <phrdina@redhat.com>
      e7e05801
  15. 30 10月, 2014 1 次提交
  16. 29 10月, 2014 5 次提交
  17. 06 10月, 2014 3 次提交
    • J
      qemu: Remove possible NULL deref in debug output · b7890a8c
      John Ferlan 提交于
      Check for !dev->info.alias was done after a VIR_DEBUG() statement
      that already tried to print - just flip sequence
      b7890a8c
    • J
      qemu: Remove need for virConnectPtr in hotunplug detach host, net · 99186c41
      John Ferlan 提交于
      Prior patch removed the need for the virConnectPtr in the unplug
      detach host path which caused ripple effect to remove in multiple
      callers.  The previous patch just left things as ATTRIBUTE_UNUSED -
      this patch will remove the variable.
      99186c41
    • J
      qemu: Fix hot unplug of SCSI_HOST device · d2774e54
      John Ferlan 提交于
      https://bugzilla.redhat.com/show_bug.cgi?id=1141732
      
      Introduced by commit id '8f76ad99' the logic to detach a scsi_host
      device (SCSI or iSCSI) fails when attempting to remove the 'drive'
      because as I found in my investigation - the DelDevice takes care of
      that for us.
      
      The investigation turned up commits to adjust the logic for the
      qemuMonitorDelDevice and qemuMonitorDriveDel processing for interfaces
      (commit id '81f76598'), disk bus=VIRTIO,SCSI,USB (commit id '0635785b'),
      and chr devices (commit id '55b21f9b'), but nothing with the host devices.
      
      This commit uses the model for the previous set of changes and applies
      it to the hostdev path. The call to qemuDomainDetachHostSCSIDevice will
      return to qemuDomainDetachThisHostDevice handling either the audit of
      the failure or the wait for the removal and then call into
      qemuDomainRemoveHostDevice for the event, removal from the domain hostdev
      list, and audit of the removal similar to other paths.
      
      NOTE: For now the 'conn' param to +qemuDomainDetachHostSCSIDevice is left
      as ATTRIBUTE_UNUSED.  Removing requires a cascade of other changes to be
      left for a future patch.
      d2774e54
  18. 04 10月, 2014 1 次提交
    • M
      docs, conf, schema: add support for shmem device · 540a84ec
      Martin Kletzander 提交于
      This patch adds parsing/formatting code as well as documentation for
      shared memory devices.  This will currently be only accessible in QEMU
      using it's ivshmem device, but is designed as generic as possible to
      allow future expansion for other hypervisors.
      
      In the devices section in the domain XML users may specify:
      
      - For shmem device using a server:
      
       <shmem name='shmem0'>
         <server path='/tmp/socket-ivshmem0'/>
         <size unit='M'>32</size>
         <msi vectors='32' ioeventfd='on'/>
       </shmem>
      
      - For ivshmem device not using an ivshmem server:
      
       <shmem name='shmem1'>
         <size unit='M'>32</size>
       </shmem>
      
      Most of the configuration is made optional so it also allows
      specifications like:
      
       <shmem name='shmem1/>
       <shmem name='shmem2'>
         <server/>
       </shmem>
      Signed-off-by: NMaxime Leroy <maxime.leroy@6wind.com>
      Signed-off-by: NMartin Kletzander <mkletzan@redhat.com>
      540a84ec
  19. 24 9月, 2014 1 次提交
    • P
      qemu: Report better errors from broken backing chains · 639a0098
      Peter Krempa 提交于
      Request erroring out from the backing chain traveller and drop qemu's
      internal backing chain integrity tester.
      
      The backing chain traveller reports errors by itself with possibly more
      detail than qemuDiskChainCheckBroken ever could.
      
      We also need to make sure that we reconnect to existing qemu instances
      even at the cost of losing the backing chain info (this really should be
      stored in the XML rather than reloaded from disk, but that needs some
      work).
      639a0098
  20. 04 9月, 2014 1 次提交
    • E
      maint: use consistent if-else braces in qemu · 44e30277
      Eric Blake 提交于
      I'm about to add a syntax check that enforces our documented
      HACKING style of always using matching {} on if-else statements.
      
      This commit focuses on the qemu driver.
      
      * src/qemu/qemu_command.c (qemuParseISCSIString)
      (qemuParseCommandLineDisk, qemuParseCommandLine)
      (qemuBuildSmpArgStr, qemuBuildCommandLine)
      (qemuParseCommandLineDisk, qemuParseCommandLineSmp): Correct use
      of {}.
      * src/qemu/qemu_capabilities.c (virQEMUCapsProbeCPUModels):
      Likewise.
      * src/qemu/qemu_driver.c (qemuDomainCoreDumpWithFormat)
      (qemuDomainRestoreFlags, qemuDomainGetInfo)
      (qemuDomainMergeBlkioDevice): Likewise.
      * src/qemu/qemu_hotplug.c (qemuDomainAttachNetDevice): Likewise.
      * src/qemu/qemu_monitor_text.c (qemuMonitorTextCreateSnapshot)
      (qemuMonitorTextLoadSnapshot, qemuMonitorTextDeleteSnapshot):
      Likewise.
      * src/qemu/qemu_process.c (qemuProcessStop): Likewise.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      44e30277
  21. 20 8月, 2014 8 次提交
    • M
      qemu: Label all TAP FDs · cf976d9d
      Michal Privoznik 提交于
      https://bugzilla.redhat.com/show_bug.cgi?id=1095636
      
      When starting up the domain the domain's NICs are allocated. As of
      1f24f682 (v1.0.6) we are able to use multiqueue feature on virtio
      NICs. It breaks network processing into multiple queues which can be
      processed in parallel by different host CPUs. The queues are, however,
      created by opening /dev/net/tun several times. Unfortunately, only the
      first FD in the row is labelled so when turning the multiqueue feature
      on in the guest, qemu will get AVC denial. Make sure we label all the
      FDs needed.
      
      Moreover, the default label of /dev/net/tun doesn't allow
      attaching a queue:
      
          type=AVC msg=audit(1399622478.790:893): avc:  denied  { attach_queue }
          for  pid=7585 comm="qemu-kvm"
          scontext=system_u:system_r:svirt_t:s0:c638,c877
          tcontext=system_u:system_r:virtd_t:s0-s0:c0.c1023
          tclass=tun_socket
      
      And as suggested by SELinux maintainers, the tun FD should be labeled
      as svirt_t. Therefore, we don't need to adjust any range (as done
      previously by Guannan in ae368ebf) rather set the seclabel of the
      domain directly.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      cf976d9d
    • P
      qemu: hotplug: Sanitize shared device removal on media change · aecc6bb8
      Peter Krempa 提交于
      Instead of tediously copying of the disk source to remove it later
      ensure that the media change function removes the old device after it
      succeeds.
      aecc6bb8
    • P
      qemu: hotplug: Format proper source string for cdrom media change · b57ca132
      Peter Krempa 提交于
      Use the qemu source string formatter to format the source string
      correctly for remote and other storage instead of passing source->path
      blindly.
      b57ca132
    • P
      qemu: hotplug: Change arguments for qemuDomainChangeEjectableMedia · 1f39218e
      Peter Krempa 提交于
      Pass the source of the changed media instead of a complete disk
      definition.
      
      Note that the @disk argument now contains what @olddisk would contain.
      The new source is passed as a virStorageSource struct.
      1f39218e
    • P
      qemu: hotplug: Add helper to initialize/teardown new disks for VMs · ca91ba78
      Peter Krempa 提交于
      When we are changing media (or doing other hotplug operations) we need
      to setup cgroups, locking and seclabels on the new disk. This is a
      multi-step process where every piece can fail. To simplify dealing with
      this introduce qemuDomainPrepareDisk that similarly to
      qemuDomainPrepareDiskChainElement initializes/tears down  a whole new
      disk to be used with the domain.
      
      Additionally the function supports passing a different source struct for
      media changes of cdroms that will be refactored later.
      ca91ba78
    • P
      qemu: hotplug: Untangle cleanup paths in qemuDomainChangeEjectableMedia · 240eb2fb
      Peter Krempa 提交于
      Avoid the "audit" label to simplify control flow.
      240eb2fb
    • P
    • R
      storage: make disk source pool translation generic · 8c170c9f
      Roman Bogorodskiy 提交于
      Currently, qemu driver uses qemuTranslateDiskSourcePool()
      to translate disk volume information. This function is
      general enough and could be used for other drivers as well,
      so move it to conf/domain_conf.c along with its helpers.
      
       - qemuTranslateDiskSourcePool: move to storage/storage_driver.c
         and rename to virStorageTranslateDiskSourcePool,
       - qemuAddISCSIPoolSourceHost: move to storage/storage_driver.c
         and rename to virStorageAddISCSIPoolSourceHost,
       - qemuTranslateDiskSourcePoolAuth: move to storage/storage_driver.c
         and rename to virStorageTranslateDiskSourcePoolAuth,
       - Update users of qemuTranslateDiskSourcePool to use a
         new name.
      8c170c9f
  22. 14 8月, 2014 1 次提交