1. 16 11月, 2012 1 次提交
    • G
      ehci: handle dma errors · 55903f1d
      Gerd Hoffmann 提交于
      Starting with commit 1c380f94 dma
      transfers can actually fail.  This patch makes ehci keep track
      of the busmaster bit in pci config space, by setting/clearing the
      dma_context pointer.  Attempts to dma without context will result
      in raising HSE (Host System Error) interrupt and stopping the host
      controller.
      
      This patch fixes WinXP not booting with a usb stick attached to ehci.
      Root cause is seabios activating ehci so you can boot from the stick,
      and WinXP clearing the busmaster bit before resetting the host
      controller, leading to ehci actually trying dma while it is disabled.
      Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
      55903f1d
  2. 05 11月, 2012 1 次提交
  3. 01 11月, 2012 1 次提交
  4. 31 10月, 2012 1 次提交
    • P
      aio: add generic thread-pool facility · d354c7ec
      Paolo Bonzini 提交于
      Add a generic thread-pool.  The code is roughly based on posix-aio-compat.c,
      with some changes, especially the following:
      
      - use QemuSemaphore instead of QemuCond;
      
      - separate the state of the thread from the return code of the worker
      function.  The return code is totally opaque for the thread pool;
      
      - do not busy wait when doing cancellation.
      
      A more generic threadpool (but still specific to I/O so that in the future
      it can use special scheduling classes or PI mutexes) can have many uses:
      it allows more flexibility in raw-posix.c and can more easily be extended
      to Win32, and it will also be used to do an msync of the persistent bitmap.
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      d354c7ec
  5. 25 10月, 2012 1 次提交
    • H
      uhci: Verify queue has not been changed by guest · 66a08cbe
      Hans de Goede 提交于
      According to the spec a guest can unlink a qh, and then as soon as frindex
      has changed by 1 since the unlink, assume it is idle and re-use it. However
      for various reasons, we cannot simply consider a qh as unlinked if we've not
      seen it for 1 frame. This means that it is possible for a guest to re-use /
      restart the queue while we still see its old state. This patch adds a safety
      check for this, and "early" retires queues when they were changed by the guest.
      Signed-off-by: NHans de Goede <hdegoede@redhat.com>
      Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
      66a08cbe
  6. 24 10月, 2012 2 次提交
    • P
      mirror: introduce mirror job · 893f7eba
      Paolo Bonzini 提交于
      This patch adds the implementation of a new job that mirrors a disk to
      a new image while letting the guest continue using the old image.
      The target is treated as a "black box" and data is copied from the
      source to the target in the background.  This can be used for several
      purposes, including storage migration, continuous replication, and
      observation of the guest I/O in an external program.  It is also a
      first step in replacing the inefficient block migration code that is
      part of QEMU.
      
      The job is possibly never-ending, but it is logically structured into
      two phases: 1) copy all data as fast as possible until the target
      first gets in sync with the source; 2) keep target in sync and
      ensure that reopening to the target gets a correct (full) copy
      of the source data.
      
      The second phase is indicated by the progress in "info block-jobs"
      reporting the current offset to be equal to the length of the file.
      When the job is cancelled in the second phase, QEMU will run the
      job until the source is clean and quiescent, then it will report
      successful completion of the job.
      
      In other words, the BLOCK_JOB_CANCELLED event means that the target
      may _not_ be consistent with a past state of the source; the
      BLOCK_JOB_COMPLETED event means that the target is consistent with
      a past state of the source.  (Note that it could already happen
      that management lost the race against QEMU and got a completion
      event instead of cancellation).
      
      It is not yet possible to complete the job and switch over to the target
      disk.  The next patches will fix this and add many refinements to the
      basic idea introduced here.  These include improved error management,
      some tunable knobs and performance optimizations.
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      893f7eba
    • P
      block: add block-job-complete · aeae883b
      Paolo Bonzini 提交于
      While streaming can be dropped as soon as it progressed through the whole
      image, mirroring needs to be completed manually for two reasons: 1) so that
      management knows exactly when the VM switches to the target; 2) because
      for other use cases such as replication, we may leave the operation running
      for the whole life of the virtual machine.
      
      Add a new block job command that manually completes background operations.
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      aeae883b
  7. 18 10月, 2012 1 次提交
  8. 29 9月, 2012 3 次提交
  9. 13 9月, 2012 3 次提交
  10. 12 9月, 2012 1 次提交
    • G
      ehci: switch to new-style memory ops · 3e4f910c
      Gerd Hoffmann 提交于
      Also register different memory regions for capabilities,
      operational registers and port status registers.  Create
      separate tracepoints for operational regs and port status
      regs.  Ditch a bunch of sanity checks because the memory
      core will do this for us now.
      
      Offloading the byte, word and dword access handling to the
      memory core also has the side effect of fixing ehci register
      access on bigendian hosts.
      
      Cc: David Gibson <david@gibson.dropbear.id.au>
      Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
      3e4f910c
  11. 11 9月, 2012 8 次提交
  12. 05 9月, 2012 1 次提交
    • A
      qxl: add QXL_IO_MONITORS_CONFIG_ASYNC · 020af1c4
      Alon Levy 提交于
      Revision bumped to 4 for new IO support, enabled for spice-server >=
      0.11.1. New io enabled if revision is 4. Revision can be set to 4.
      
      [ kraxel: 3 continues to be the default revision.  Once we have a new
                stable spice-server release and the qemu patches to enable
                the new bits merged we'll go flip the switch and make rev4
                the default ]
      
      This io calls the corresponding new spice api
      spice_qxl_monitors_config_async to let spice-server read a new guest set
      monitors config and notify the client.
      
      On migration reissue spice_qxl_monitors_config_async.
      
      RHBZ: 770842
      Signed-off-by: NAlon Levy <alevy@redhat.com>
      Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
      
      fixup
      Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
      020af1c4
  13. 16 8月, 2012 2 次提交
  14. 27 7月, 2012 2 次提交
  15. 26 7月, 2012 1 次提交
  16. 17 7月, 2012 2 次提交
  17. 14 7月, 2012 4 次提交
  18. 12 7月, 2012 2 次提交
    • G
      ehci: implement Interrupt Threshold Control support · 7efc17af
      Gerd Hoffmann 提交于
      Also reorganize and comment the irq functions while being at it.
      Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
      7efc17af
    • G
      usb: add usb attached scsi emulation · 0f58f68b
      Gerd Hoffmann 提交于
      $subject says all.  First cut.
      
      It's a pure UAS (usb attached scsi) emulation, without BOT (bulk-only
      transport) compatibility.  If your guest can't handle it use usb-storage
      instead.
      
      The emulation works like any other scsi hba emulation (eps, lsi, virtio,
      megasas, ...).  It provides just the HBA where you can attach scsi
      devices as you like using '-device'.  A single scsi target with up to
      256 luns is supported.
      
      For now only usb 2.0 transport is supported.  This will change in the
      future though as I plan to use this as playground when codeing up &
      testing usb 3.0 transport and streams support in the qemu usb core and
      the xhci emulation.
      
      No migration support yet.  I'm planning to add usb 3.0 support first as
      this probably requires saving additional state.
      
      Special thanks go to Paolo for bringing the qemu scsi emulation into
      shape, so this can be added nicely without having to touch a single line
      of scsi code.
      Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
      0f58f68b
  19. 09 7月, 2012 1 次提交
  20. 02 7月, 2012 1 次提交
  21. 29 6月, 2012 1 次提交