1. 15 9月, 2015 2 次提交
  2. 14 9月, 2015 2 次提交
  3. 12 9月, 2015 1 次提交
    • C
      qemu: command: Report stderr from qemu-bridge-helper · db35beaa
      Cole Robinson 提交于
      There's a couple reports of things failing in this area (bug 1259070),
      but it's tough to tell what's going wrong without stderr from
      qemu-bridge-helper. So let's report stderr in the error message
      
      Couple new examples:
      
      virbr0 is inactive:
      internal error: /usr/libexec/qemu-bridge-helper --use-vnet --br=virbr0 --fd=21: failed to communicate with bridge helper: Transport endpoint is not connected
      stderr=failed to get mtu of bridge `virbr0': No such device
      
      bridge isn't on the ACL:
      internal error: /usr/libexec/qemu-bridge-helper --use-vnet --br=br0 --fd=21: failed to communicate with bridge helper: Transport endpoint is not connected
      stderr=access denied by acl file
      db35beaa
  4. 10 9月, 2015 4 次提交
  5. 09 9月, 2015 2 次提交
    • M
      qemu: Report error if per-VM directory cannot be created · 83700237
      Martin Kletzander 提交于
      Commit f1f68ca3 did not report an error if virFileMakePath()
      returned -1.  Well, who would've guessed function with name starting
      with 'vir' sets an errno instead of reporting an error the libvirt way.
      Anyway, let's fix it, so the output changes from:
      
        $ virsh start arm
        error: Failed to start domain arm
        error: An error occurred, but the cause is unknown
      
      to:
      
        $ virsh start arm
        error: Failed to start domain arm
        error: Cannot create directory '/var/lib/libvirt/qemu/domain-arm': Not
        a directory
      
      Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1146886Signed-off-by: NMartin Kletzander <mkletzan@redhat.com>
      83700237
    • P
      qemu: migration: Relax enforcement of memory hotplug support · a98e5a78
      Peter Krempa 提交于
      If the current live definition does not have memory hotplug enabled, but
      the persistent one does libvirt would reject migration if the
      destination does not support memory hotplug even if the user didn't want
      to persist the VM at the destination and thus the XML containing the
      memory hotplug definition would not be used. To fix this corner case the
      code will check for memory hotplug in the newDef only if
      VIR_MIGRATE_PERSIST_DEST was used.
      a98e5a78
  6. 05 9月, 2015 1 次提交
  7. 04 9月, 2015 2 次提交
    • J
      qemu: Need to check for machine.os when using ADDRESS_TYPE_CCW · a39ab909
      John Ferlan 提交于
      https://bugzilla.redhat.com/show_bug.cgi?id=1258361
      
      When attaching a disk, controller, or rng using an address type ccw
      or s390, we need to ensure the support is provided by both the machine.os
      and the emulator capabilities (corollary to unconditional setting when
      address was not provided for the correct machine.os and emulator.
      
      For an inactive guest, an addition followed by a start would cause the
      startup to fail after qemu_command builds the command line and attempts
      to start the guest. For an active guest, libvirtd would crash.
      a39ab909
    • J
      qemu: Introduce qemuDomainMachineIsS390CCW · d334c917
      John Ferlan 提交于
      Rather than have different usages of STR function in order to determine
      whether the domain is s390-ccw or s390-ccw-virtio, make a single API
      which will check the machine.os prefix. Then use the function.
      d334c917
  8. 02 9月, 2015 1 次提交
    • J
      qemu: add udp interface support · 5c668a78
      Jonathan Toppins 提交于
      Adds a new interface type using UDP sockets, this seems only applicable
      to QEMU but have edited tree-wide to support the new interface type.
      
      The interface type required the addition of a "localaddr" (local
      address), this then maps into the following xml and qemu call.
      
      <interface type='udp'>
        <mac address='52:54:00:5c:67:56'/>
        <source address='127.0.0.1' port='11112'>
          <local address='127.0.0.1' port='22222'/>
        </source>
        <model type='virtio'/>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
      </interface>
      
      QEMU call:
      	-net socket,udp=127.0.0.1:11112,localaddr=127.0.0.1:22222
      
      Notice the xml "local" entry becomes the "localaddr" for the qemu call.
      
      reference:
      http://lists.gnu.org/archive/html/qemu-devel/2011-11/msg00629.htmlSigned-off-by: NJonathan Toppins <jtoppins@cumulusnetworks.com>
      Signed-off-by: NJán Tomko <jtomko@redhat.com>
      5c668a78
  9. 28 8月, 2015 1 次提交
  10. 27 8月, 2015 2 次提交
    • L
      qemu: Emit correct audit message for memory hot unplug · 8f8031df
      Luyao Huang 提交于
      https://bugzilla.redhat.com/show_bug.cgi?id=1226234#c3
      
      If the qemu monitor fails to remove the memory from the guest for
      any reason, the auditlog message will incorrectly use the current
      actual memory (via virDomainDefGetMemoryActual) instead of the
      value we were attempting to reduce to. The result is the 'new-mem'
      and 'old-mem' values for the auditlog message would be identical.
      
      This patch creates a local 'newmem' which accounts for the current
      memory size minus the memory which is being removed. NB, for the
      success case this results in the same value that would be returned
      by virDomainDefGetMemoryActual without the need to do the math. This
      follows the existing code which would subtract the size for cur_balloon.
      Signed-off-by: NLuyao Huang <lhuang@redhat.com>
      8f8031df
    • L
      qemu: Emit correct audit message for memory hot plug · cb1fbda4
      Luyao Huang 提交于
      https://bugzilla.redhat.com/show_bug.cgi?id=1226234#c3
      
      Prior to this patch, after successfully hot plugging memory
      the audit log indicated that the update failed, e.g.:
      
      type=VIRT_RESOURCE ... old-mem=1024000 new-mem=1548288 \
      exe="/usr/sbin/libvirtd" hostname=? addr=? terminal=pts/2 res=failed
      
      This patch will adjust where virDomainAuditMemory is called to
      ensure the proper 'ret' value is used based on success or failure.
      
      Additionally, the audit message should include the size of the
      memory we were attempting to change to rather than the current
      actual size. On failure to add, the message showed the same value
      for old-mem and new-mem.
      
      In order to do this, introduce a 'newmem' local which will compute
      the new size based on the oldmem size plus the size of memory we
      are about to add. NB: This would be the same as calling the
      virDomainDefGetMemoryActual again on success, but avoids the
      overhead of recalculating. Plus cur_balloon is already adjusted
      by the same value, so this follows that.
      Signed-off-by: NLuyao Huang <lhuang@redhat.com>
      cb1fbda4
  11. 26 8月, 2015 2 次提交
  12. 24 8月, 2015 3 次提交
  13. 20 8月, 2015 1 次提交
  14. 19 8月, 2015 4 次提交
  15. 18 8月, 2015 1 次提交
  16. 16 8月, 2015 1 次提交
    • J
      qemu: Resolve Coverity UNINIT · c4cfc0d0
      John Ferlan 提交于
      Coverity complained that 'vm' wasn't initialized before jumping to
      cleanup: and calling virDomainObjEndAPI if the VIR_STRDUP fails.
      So I initialized vm = NULL and also moved the VIR_STRDUP closer to
      usage and used endjob for goto. Lots of other reasons for failures.
      c4cfc0d0
  17. 14 8月, 2015 3 次提交
  18. 13 8月, 2015 6 次提交
    • M
      qemu: Use numad information when getting pin information · 776924e3
      Martin Kletzander 提交于
      Pinning information returned for emulatorpin and vcpupin calls is being
      returned from our data without querying cgroups for some time.  However,
      not all the data were utilized.  When automatic placement is used the
      information is not returned for the calls mentioned above.  Since the
      numad hint in private data is properly saved/restored, we can safely use
      it to return true information.
      
      Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1162947Signed-off-by: NMartin Kletzander <mkletzan@redhat.com>
      776924e3
    • M
      qemu: Keep numad hint after daemon restart · 8ce86722
      Martin Kletzander 提交于
      The numad hint stored in priv->autoNodeset is information that gets lost
      during daemon restart.  And because we would like to use that
      information in the future, we also need to save it in the status XML.
      For the sake of tests, we need to initialize nnumaCell_max to some
      value, so that the restoration doesn't fail in our test suite.  There is
      no need to fill in the actual numa cell data since the recalculating
      function virCapabilitiesGetCpusForNodemask() will not fail, it will just
      skip filling the data in the bitmap which we don't use in tests anyway.
      Signed-off-by: NMartin Kletzander <mkletzan@redhat.com>
      8ce86722
    • M
      conf: Pass private data to Parse function of XML options · 7c8028cd
      Martin Kletzander 提交于
      This needs a reorder of XML option definitions.  It might come in handy
      one day.
      Signed-off-by: NMartin Kletzander <mkletzan@redhat.com>
      7c8028cd
    • M
      qemu: Fix segfault when parsing private domain data · 92ddffdb
      Martin Kletzander 提交于
      When parsing private domain data, there are two paths that are flawed.
      They are both error paths, just from different parts of the function.
      One of them can call free() on an uninitialized pointer.  Initialization
      to NULL is enough here.  The other one is a bit trickier to explain, but
      as easy as the first one to fix.  We create capabilities, parse them and
      then assign them into the private data pointer inside the domain object.
      If, however, we get to fail from now on, the error path calls unrefs the
      capabilities and then, when the domain object is being cleaned,
      qemuDomainObjPrivateFree() tries to unref them as well.  That causes a
      segfault.  Settin the pointer to NULL upon successful addition to the
      private data is enough.
      Signed-off-by: NMartin Kletzander <mkletzan@redhat.com>
      92ddffdb
    • J
      conf: Check for hostdev conflicts when assign default disk address · 1b08cc17
      John Ferlan 提交于
      https://bugzilla.redhat.com/show_bug.cgi?id=1210587  (completed)
      
      When generating the default drive address for a SCSI <disk> device,
      check the generated address to ensure it doesn't conflict with a SCSI
      <hostdev> address. The <disk> address generation algorithm uses the
      <target> "dev" name in order to determine which controller and unit
      in order to place the device. Since a SCSI <hostdev> device doesn't
      require a target device name, its placement on the guest SCSI address
      "could" conflict.  For instance, if a SCSI <hostdev> exists at
      controller=0 unit=0 and an attempt to hotplug 'sda' into the guest
      made, there would be a conflict if the <hostdev> is already using
      /dev/sda.
      1b08cc17
    • F
      Drive hot-unplug: reliable parsing of HMP results · 69a3b0df
      Frank Schreuder 提交于
      Hot-unplugging a disk from a guest that supports hot-unplugging generates an error
      in the libvirt log when running QEMU with the "-msg timestamp=on" flag.
      
      2015-08-06 10:48:59.945+0000: 11662: error : qemuMonitorTextDriveDel:2594 :
      operation failed: deleting drive-virtio-disk4 drive failed:
      2015-08-06T10:48:59.945058Z Device 'drive-virtio-disk4' not found
      
      This error is caused because the HMP results are getting prefixed with a timestamp.
      Parsing the output is not reliable with STRPREFIX as the results can be prefixed with a timestamp.
      
      Using strstr ensures that parsing the output works whether the results are prefixed or not.
      
      Cc: Stefan Hajnoczi <stefanha@redhat.com>
      Cc: Daniel P. Berrange <berrange@redhat.com>
      Signed-off-by: NFrank Schreuder <fschreuder@transip.nl>
      69a3b0df
  19. 12 8月, 2015 1 次提交