1. 03 12月, 2013 2 次提交
  2. 21 9月, 2013 2 次提交
  3. 20 9月, 2013 1 次提交
  4. 10 9月, 2013 1 次提交
  5. 02 9月, 2013 4 次提交
  6. 28 8月, 2013 1 次提交
  7. 29 7月, 2013 2 次提交
  8. 18 7月, 2013 2 次提交
  9. 13 7月, 2013 1 次提交
    • C
      Force auto-convegence of live migration · 7ca1dfad
      Chegu Vinod 提交于
      If a user chooses to turn on the auto-converge migration capability
      these changes detect the lack of convergence and throttle down the
      guest. i.e. force the VCPUs out of the guest for some duration
      and let the migration thread catchup and help converge.
      
      Verified the convergence using the following :
       - Java Warehouse workload running on a 20VCPU/256G guest(~80% busy)
       - OLTP like workload running on a 80VCPU/512G guest (~80% busy)
      
      Sample results with Java warehouse workload : (migrate speed set to 20Gb and
      migrate downtime set to 4seconds).
      
       (qemu) info migrate
       capabilities: xbzrle: off auto-converge: off  <----
       Migration status: active
       total time: 1487503 milliseconds
       expected downtime: 519 milliseconds
       transferred ram: 383749347 kbytes
       remaining ram: 2753372 kbytes
       total ram: 268444224 kbytes
       duplicate: 65461532 pages
       skipped: 64901568 pages
       normal: 95750218 pages
       normal bytes: 383000872 kbytes
       dirty pages rate: 67551 pages
      
       ---
      
       (qemu) info migrate
       capabilities: xbzrle: off auto-converge: on   <----
       Migration status: completed
       total time: 241161 milliseconds
       downtime: 6373 milliseconds
       transferred ram: 28235307 kbytes
       remaining ram: 0 kbytes
       total ram: 268444224 kbytes
       duplicate: 64946416 pages
       skipped: 64903523 pages
       normal: 7044971 pages
       normal bytes: 28179884 kbytes
      Signed-off-by: NChegu Vinod <chegu_vinod@hp.com>
      Signed-off-by: NJuan Quintela <quintela@redhat.com>
      7ca1dfad
  10. 28 6月, 2013 1 次提交
    • D
      block: add basic backup support to block driver · 98d2c6f2
      Dietmar Maurer 提交于
      backup_start() creates a block job that copies a point-in-time snapshot
      of a block device to a target block device.
      
      We call backup_do_cow() for each write during backup. That function
      reads the original data from the block device before it gets
      overwritten.  The data is then written to the target device.
      
      Currently backup cluster size is hardcoded to 65536 bytes.
      
      [I made a number of changes to Dietmar's original patch and folded them
      in to make code review easy.  Here is the full list:
      
       * Drop BackupDumpFunc interface in favor of a target block device
       * Detect zero clusters with buffer_is_zero() and use bdrv_co_write_zeroes()
       * Use 0 delay instead of 1us, like other block jobs
       * Unify creation/start functions into backup_start()
       * Simplify cleanup, free bitmap in backup_run() instead of cb
       * function
       * Use HBitmap to avoid duplicating bitmap code
       * Use bdrv_getlength() instead of accessing ->total_sectors
       * directly
       * Delete the backup.h header file, it is no longer necessary
       * Move ./backup.c to block/backup.c
       * Remove #ifdefed out code
       * Coding style and whitespace cleanups
       * Use bdrv_add_before_write_notifier() instead of blockjob-specific hooks
       * Keep our own in-flight CowRequest list instead of using block.c
         tracked requests.  This means a little code duplication but is much
         simpler than trying to share the tracked requests list and use the
         backup block size.
       * Add on_source_error and on_target_error error handling.
       * Use trace events instead of DPRINTF()
      
      -- stefanha]
      Signed-off-by: NDietmar Maurer <dietmar@proxmox.com>
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      98d2c6f2
  11. 25 5月, 2013 1 次提交
  12. 24 5月, 2013 1 次提交
    • S
      coroutine: stop using AioContext in CoQueue · 02ffb504
      Stefan Hajnoczi 提交于
      qemu_co_queue_next(&queue) arranges that the next queued coroutine is
      run at a later point in time.  This deferred restart is useful because
      the caller may not want to transfer control yet.
      
      This behavior was implemented using QEMUBH in the past, which meant that
      CoQueue (and hence CoMutex and CoRwlock) had a dependency on the
      AioContext event loop.  This hidden dependency causes trouble when we
      move to a world with multiple event loops - now qemu_co_queue_next()
      needs to know which event loop to schedule the QEMUBH in.
      
      After pondering how to stash AioContext I realized the best solution is
      to not use AioContext at all.  This patch implements the deferred
      restart behavior purely in terms of coroutines and no longer uses
      QEMUBH.
      
      Here is how it works:
      
      Each Coroutine has a wakeup queue that starts out empty.  When
      qemu_co_queue_next() is called, the next coroutine is added to our
      wakeup queue.  The wakeup queue is processed when we yield or terminate.
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      02ffb504
  13. 20 5月, 2013 1 次提交
  14. 14 5月, 2013 2 次提交
  15. 13 5月, 2013 1 次提交
  16. 03 5月, 2013 2 次提交
  17. 02 5月, 2013 1 次提交
  18. 23 4月, 2013 1 次提交
  19. 19 4月, 2013 1 次提交
  20. 16 4月, 2013 6 次提交
    • G
      use libusb for usb-host · 2b2325ff
      Gerd Hoffmann 提交于
      Reimplement usb-host on top of libusb.
      Reasons to do this:
      
       (1) Largely rewritten from scratch, nice opportunity to kill historical
           cruft.
       (2) Offload usbfs handling to libusb.
       (3) Have a single portable code base instead of bsd + linux variants.
       (4) Bring usb-host support to any platform supported by libusbx.
      
      For now this goes side-by-side to the existing code.  That is only to
      simplify regression testing though, at the end of the day I want remove
      the old code and support libusb exclusively.  Merge early in 1.5 cycle,
      remove the old code after 1.5 release or something like this.
      
      Thanks to qdev the old and new code can coexist nicely on linux.  Just
      use "-device usb-host-linux" to use the old linux driver instead of the
      libusb one (which takes over the "usb-host" name).
      
      The bsd driver isn't qdev'ified so it isn't that easy for bsd.
      I didn't bother making it runtime switchable, so you have to rebuild
      qemu with --disable-libusb to get back the old code.
      Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
      2b2325ff
    • G
      xhci: fix portsc writes · bdfce20d
      Gerd Hoffmann 提交于
      Check for port reset first and skip everything else then.
      Add sanity checks for PLS updates.
      Add PLC notification when entering PLS_U0 state.
      
      This gets host-initiated port resume going on win8.
      Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
      bdfce20d
    • G
      console: gui timer fixes · 0f7b2864
      Gerd Hoffmann 提交于
      Make gui update rate adaption code in gui_update() actually work.
      Sprinkle in a tracepoint so you can see the code at work.  Remove
      the update rate adaption code in vnc and make vnc simply use the
      generic bits instead.
      Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
      0f7b2864
    • G
      console: add trace events · 437fe106
      Gerd Hoffmann 提交于
      Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
      437fe106
    • G
      hw/vmware_vga.c: various vmware vga fixes. · eb2f9b02
      Gerd Hoffmann 提交于
      Hardcode depth to 32 bpp.  It effectively was that way before because
      that is the default surface depth, this just makes it explicit in the
      code.
      
      Rename depth to new_depth to make it consistent with the new_width +
      new_height names.  In theory we can make new_depth changeable (i.e.
      allow the guest to fill in -- say -- 16 there).  In practice the guests
      don't try, the X-Server refuses to start if you ask it to use 16bpp
      depth (via DefaultDepth in the Screen section).
      
      Always return the correct rmask+gmask+bmask values for the given
      new_depth.
      
      Fix mode setting to also verify at new_depth to make sure we have a
      correct DisplaySurface, even if the current video mode happes to be
      16bpp (set by vgabios via bochs vbe interface).  While being at it
      switch over to use qemu_create_displaysurface_from, so the surface is
      backed by guest-visible video memory and we save a memcpy.
      Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
      eb2f9b02
    • G
      7a6404cd
  21. 03 4月, 2013 1 次提交
  22. 28 3月, 2013 3 次提交
  23. 18 3月, 2013 2 次提交