1. 25 9月, 2013 4 次提交
    • P
      qemu: Wire up better early error reporting · ef29de14
      Peter Krempa 提交于
      The previous patches added infrastructure to report better errors from
      monitor in some cases. This patch finalizes this "feature" by enabling
      this enhanced error reporting on early phases of VM startup. In these
      phases the possibility of qemu producing a useful error message is
      really high compared to running it during the whole life cycle. After
      the start up is complete, the feature is disabled to provide the usual
      error messages so that users are not confused by possibly irrelevant
      messages that may be in the domain log.
      
      The original motivation to do this enhancement is to capture errors when
      using VFIO device passthrough, where qemu reports errors after the
      monitor is initialized and the existing error catching code couldn't
      catch this producing a unhelpful message:
      
       # virsh start test
       error: Failed to start domain test
       error: Unable to read from monitor: Connection reset by peer
      
      With this change, the message is changed to:
      
       # virsh start test
       error: Failed to start domain test
       error: internal error: early end of file from monitor: possible problem:
       qemu-system-x86_64: -device vfio-pci,host=00:1a.0,id=hostdev0,bus=pci.0,addr=0x5: vfio: error, group 8 is not viable, please ensure all devices within the iommu_group are bound to their vfio bus driver.
       qemu-system-x86_64: -device vfio-pci,host=00:1a.0,id=hostdev0,bus=pci.0,addr=0x5: vfio: failed to get group 8
       qemu-system-x86_64: -device vfio-pci,host=00:1a.0,id=hostdev0,bus=pci.0,addr=0x5: Device 'vfio-pci' could not be initialized
      ef29de14
    • P
      qemu: monitor: Produce better errors on monitor hangup · 90139a62
      Peter Krempa 提交于
      Change the monitor error code to add the ability to access the qemu log
      file using a file descriptor so that we can dig in it for a more useful
      error message. The error is now logged on monitor hangups and overwrites
      a possible lesser error. A hangup on the monitor usualy means that qemu
      has crashed and there's a significant chance it produced a useful error
      message.
      
      The functionality will be latent until the next patch.
      90139a62
    • P
      qemu: monitor: Add infrastructure to access VM logs for better err msgs · 8519e9ec
      Peter Krempa 提交于
      Early VM startup errors usually produce a better error message in the
      machine log file. Currently we were accessing it only when the process
      exited during certain phases of startup. This will help adding a more
      comprehensive error extraction for early qemu startup phases.
      
      This patch adds infrastructure to keep a file descriptor for the machine
      log file that will be used in case an error happens.
      8519e9ec
    • P
      qemu_process: Make qemuProcessReadLog() more versatile and reusable · 310651a5
      Peter Krempa 提交于
      Teach the function to skip character device definitions printed by qemu
      at startup in addition to libvirt log messages and make it usable from
      outside of qemu_process.c. Also add documentation about the func.
      310651a5
  2. 24 9月, 2013 23 次提交
  3. 23 9月, 2013 3 次提交
  4. 20 9月, 2013 5 次提交
    • M
      qemu: Fix seamless SPICE migration · 484cc321
      Martin Kletzander 提交于
      Since the wait is done during migration (still inside
      QEMU_ASYNC_JOB_MIGRATION_OUT), the code should enter the monitor as such
      in order to prohibit all other jobs from interfering in the meantime.
      This patch fixes bug #1009886 in which qemuDomainGetBlockInfo was
      waiting on the monitor condition and after GetSpiceMigrationStatus
      mangled its internal data, the daemon crashed.
      
      Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1009886
      484cc321
    • D
      VMware: Make version parsing testable and add tests · 7457cbe8
      Doug Goldstein 提交于
      This splits up the version parsing code into a callable API like QEMU
      help/version string parsing so that we can test it as we need to add
      additional patterns for newer versions/products.
      7457cbe8
    • D
      VMware: Store vmrun binary's path in the driver · e7a1ce9d
      Doug Goldstein 提交于
      Rather than looking up the path to vmrun each time we call it, look it
      up once and save it. This sets up the ability for us to detect where the
      path is on Mac OS X and not have to look it up each time we execute it.
      e7a1ce9d
    • D
      VMware: Convert driver type defines to enum · ea5805ed
      Doug Goldstein 提交于
      The VMware driver supports multiple backends for the VMware Player and
      VMware Workstation, convert this logic into enum and use VIR_ENUM_IMPL()
      to provide conversions to and from strings.
      ea5805ed
    • L
      qemu: use "ide" as device name for implicit SATA controller on Q35 · 30bb4c4b
      Laine Stump 提交于
      This resolves https://bugzilla.redhat.com/show_bug.cgi?id=1008903
      
      The Q35 machinetype has an implicit SATA controller at 00:1F.2 which
      isn't given the "expected" id of ahci0 by qemu when it's created. The
      original suggested solution to this problem was to not specify any
      controller for the disks that use the default controller and just
      specify "unit=n" instead; qemu should then use the first IDE or SATA
      controller for the disk.
      
      Unfortunately, this "solution" is ignorant of the fact that in the
      case of SATA disks, the "unit" attribute in the disk XML is actually
      *not* being used for the unit, but is instead used to specify the
      "bus" number; each SATA controller has 6 buses, and each bus only
      allows a single unit. This makes it nonsensical to specify unit='n'
      where n is anything other than 0. It also means that the only way to
      connect more than a single device to the implicit SATA controller is
      to explicitly give the bus names, which happen to be "ide.$n", where
      $n can be replaced by the disk's "unit" number.
      30bb4c4b
  5. 19 9月, 2013 2 次提交
  6. 18 9月, 2013 3 次提交