1. 13 Oct, 2008 1 commit
  2. 12 Oct, 2008 3 commits
  3. 11 Oct, 2008 1 commit
  4. 08 Oct, 2008 1 commit
    • aliguori's avatar
      Fix IO performance regression in sparc · 9e472e10
      aliguori authored
      
      
      Replace signalfd with signal handler/pipe.  There is no way to interrupt
      the CPU execution loop when a file descriptor becomes readable.  This
      results in a large performance regression in sparc emulation during
      bootup.
         
      This patch switches us to signal handler/pipe which was originally
      suggested by Ian Jackson.  The signal handler lets us interrupt the
      CPU emulation loop while the write to a pipe lets us avoid the
      select/signal race condition.
      Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
      
      
      
      git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5451 c046a42c-6fe2-441c-8c8c-71466251a162
      9e472e10
  5. 07 Oct, 2008 1 commit
  6. 06 Oct, 2008 2 commits
    • aliguori's avatar
      Switch the memory savevm handler to be "live" · 475e4277
      aliguori authored
      
      
      This patch replaces the static memory savevm/loadvm handler with a "live" one.
      This handler is used even if performing a non-live migration.
      
      The key difference between this handler and the previous is that each page is
      prefixed with the address of the page.  The QEMUFile rate limiting code, in
      combination with the live migration dirty tracking bits, is used to determine
      which pages should be sent and how many should be sent.
      
      The live save code "converges" when the number of dirty pages reaches a fixed
      amount.  Currently, this is 10 pages.  This is something that should eventually
      be derived from whatever the bandwidth limitation is.
      Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
      
      
      
      git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5437 c046a42c-6fe2-441c-8c8c-71466251a162
      475e4277
    • aliguori's avatar
      Introduce v3 of savevm protocol · 9366f418
      aliguori authored
      
      
      The current savevm/loadvm protocol has some draw backs.  It does not support
      the ability to do progressive saving which means it cannot be used for live
      checkpointing or migration.  The sections sizes are 32-bit integers which
      means that it will not function when using more than 4GB of memory for a guest.
      It attempts to seek within the output file which means it cannot be streamed.
      The current protocol also is pretty lax about how it supports forward
      compatibility.  If a saved section version is greater than what the restore
      code support, the restore code generally treats the saved data as being in
      whatever version it supports.  This means that restoring a saved VM on an older
      version of QEMU will likely result in silent guest failure.
      
      This patch introduces a new version of the savevm protocol.  It has the
      following features:
      
       * Support for progressive save of sections (for live checkpoint/migration)
       * An asynchronous API for doing save
       * Support for interleaving multiple progressive save sections
         (for future support of memory hot-add/storage migration)
       * Fully streaming format
       * Strong section version checking
      Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
      
      
      
      git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5434 c046a42c-6fe2-441c-8c8c-71466251a162
      9366f418
  7. 05 Oct, 2008 1 commit
  8. 04 Oct, 2008 2 commits
  9. 02 Oct, 2008 1 commit
  10. 01 Oct, 2008 3 commits
  11. 30 Sep, 2008 3 commits
  12. 29 Sep, 2008 1 commit
  13. 28 Sep, 2008 2 commits
  14. 27 Sep, 2008 2 commits
  15. 25 Sep, 2008 1 commit
  16. 22 Sep, 2008 1 commit
  17. 20 Sep, 2008 1 commit
  18. 18 Sep, 2008 1 commit
  19. 15 Sep, 2008 1 commit
    • aliguori's avatar
      Use common objects for qemu-img and qemu-nbd · 03ff3ca3
      aliguori authored
      
      
      Right now, we sprinkle #if defined(QEMU_IMG) && defined(QEMU_NBD) all over the
      code.  It's ugly and causes us to have to build multiple object files for
      linking against qemu and the tools.
      
      This patch introduces a new file, qemu-tool.c which contains enough for
      qemu-img, qemu-nbd, and QEMU to all share the same objects.
      
      This also required getting qemu-nbd to be a bit more Windows friendly.  I also
      changed the Windows block-raw to use normal IO instead of overlapping IO since
      we don't actually do AIO yet on Windows.  I changed the various #if 0's to
       #if WIN32_AIO to make it easier for someone to eventually fix AIO on Windows.
      
      After this patch, there are no longer any #ifdef's related to qemu-img and
      qemu-nbd.
      Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
      
      
      
      git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5226 c046a42c-6fe2-441c-8c8c-71466251a162
      03ff3ca3
  20. 14 Sep, 2008 2 commits
  21. 13 Sep, 2008 1 commit
    • aliguori's avatar
      usb: Support for removing device by host addr, improved auto filter syntax (Max Krasnyansky) · 5d0c5750
      aliguori authored
      
      
      This patch adds support for removing USB devices by host address.
      Which is usefull for things like libvirtd because there is no easy way to
      find guest USB address of the host device.
      In other words you can now do:
         usb_add host:3.5
         ...
         usb_del host:3.5
      Before the patch 'usb_del' did not support 'host:' notation.
      
      ----
      Syntax for specifying auto connect filters has been improved.
      Old syntax was
          host:bus.dev
          host:pid:vid
      New syntax is
          host:auto:bus.dev[:pid:vid]
      In both the cases any attribute can be set to "*".
      
      New syntax is more flexible and lets you do things like
          host:3.*:5533:* /* grab any device on bus 3 with vendor id 5533 */
      
      It's now possible to remove auto filters. For example:
          usb_del host:auto:3.*:5533:*
      
      Active filters are printed after all host devices in 'info usb' output.
      Which now looks like this:
      
        Device 1.1, speed 480 Mb/s
          Hub: USB device 1d6b:0002, EHCI Host Controller
        Device 1.4, speed 480 Mb/s
          Class 00: USB device 1058:0704, External HDD
        Auto filters:
          Device 3.* ID *:*
      Signed-off-by: default avatarMax Krasnyansky <maxk@kernel.org>
      Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
      
      
      
      git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5205 c046a42c-6fe2-441c-8c8c-71466251a162
      5d0c5750
  22. 10 Sep, 2008 1 commit
    • aliguori's avatar
      Use signalfd() to work around signal/select race · baf35cb9
      aliguori authored
      
      
      This patch introduces signalfd() to work around the signal/select race in
      checking for AIO completions.  For platforms that don't support signalfd(), we
      emulate it with threads.
      
      There was a long discussion about this approach.  I don't believe there are any
      fundamental problems with this approach and I believe eliminating the use of
      signals is a good thing.
      
      I've tested Windows and Linux using Windows and Linux guests.  I've also checked
      for disk IO performance regressions.
      Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
      
      
      
      git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5187 c046a42c-6fe2-441c-8c8c-71466251a162
      baf35cb9
  23. 09 Sep, 2008 1 commit
  24. 02 Sep, 2008 1 commit
  25. 28 Aug, 2008 1 commit
  26. 24 Aug, 2008 1 commit
  27. 22 Aug, 2008 1 commit
  28. 21 Aug, 2008 2 commits