1. 19 1月, 2013 1 次提交
  2. 08 1月, 2013 1 次提交
  3. 02 1月, 2013 2 次提交
    • S
      dataplane: add virtio-blk data plane code · e72f66a0
      Stefan Hajnoczi 提交于
      virtio-blk-data-plane is a subset implementation of virtio-blk.  It only
      handles read, write, and flush requests.  It does this using a dedicated
      thread that executes an epoll(2)-based event loop and processes I/O
      using Linux AIO.
      
      This approach performs very well but can be used for raw image files
      only.  The number of IOPS achieved has been reported to be several times
      higher than the existing virtio-blk implementation.
      
      Eventually it should be possible to unify virtio-blk-data-plane with the
      main body of QEMU code once the block layer and hardware emulation is
      able to run outside the global mutex.
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      e72f66a0
    • S
      dataplane: add virtqueue vring code · 88807f89
      Stefan Hajnoczi 提交于
      The virtio-blk-data-plane cannot access memory using the usual QEMU
      functions since it executes outside the global mutex and the memory APIs
      are this time are not thread-safe.
      
      This patch introduces a virtqueue module based on the kernel's vhost
      vring code.  The trick is that we map guest memory ahead of time and
      access it cheaply outside the global mutex.
      
      Once the hardware emulation code can execute outside the global mutex it
      will be possible to drop this code.
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      88807f89
  4. 17 12月, 2012 1 次提交
    • M
      spice-qemu-char: add spiceport chardev · 5a49d3e9
      Marc-André Lureau 提交于
      Add a new spice chardev to allow arbitrary communication between the
      host and the Spice client via the spice server.
      
      Examples:
      
      This allows the Spice client to have a special port for the qemu
      monitor:
      
      ... -chardev spiceport,name=org.qemu.monitor,id=monitorport
          -mon chardev=monitorport
      
      v2:
      - remove support for chardev to chardev linking
      - conditionnaly compile with SPICE_SERVER_VERSION
      Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
      5a49d3e9
  5. 14 12月, 2012 1 次提交
  6. 16 11月, 2012 2 次提交
    • G
      usb-host: update tracing · 8c908fca
      Gerd Hoffmann 提交于
      Now that we have separate status and length fields in USBPacket
      update the completion tracepoint to log both.
      Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
      8c908fca
    • 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
  7. 05 11月, 2012 1 次提交
  8. 01 11月, 2012 1 次提交
  9. 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
  10. 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
  11. 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
  12. 18 10月, 2012 1 次提交
  13. 29 9月, 2012 3 次提交
  14. 13 9月, 2012 3 次提交
  15. 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
  16. 11 9月, 2012 8 次提交
  17. 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
  18. 16 8月, 2012 3 次提交
  19. 27 7月, 2012 2 次提交
  20. 26 7月, 2012 1 次提交
  21. 17 7月, 2012 2 次提交
  22. 14 7月, 2012 1 次提交