1. 18 5月, 2016 1 次提交
  2. 23 3月, 2016 1 次提交
  3. 16 2月, 2016 1 次提交
  4. 09 2月, 2016 1 次提交
    • S
      memory: RCU ram_list.dirty_memory[] for safe RAM hotplug · 5b82b703
      Stefan Hajnoczi 提交于
      Although accesses to ram_list.dirty_memory[] use atomics so multiple
      threads can safely dirty the bitmap, the data structure is not fully
      thread-safe yet.
      
      This patch handles the RAM hotplug case where ram_list.dirty_memory[] is
      grown.  ram_list.dirty_memory[] is change from a regular bitmap to an
      RCU array of pointers to fixed-size bitmap blocks.  Threads can continue
      accessing bitmap blocks while the array is being extended.  See the
      comments in the code for an in-depth explanation of struct
      DirtyMemoryBlocks.
      
      I have tested that live migration with virtio-blk dataplane works.
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      Message-Id: <1453728801-5398-2-git-send-email-stefanha@redhat.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      5b82b703
  5. 05 2月, 2016 2 次提交
  6. 29 1月, 2016 1 次提交
  7. 22 1月, 2016 1 次提交
  8. 13 1月, 2016 4 次提交
  9. 11 12月, 2015 1 次提交
  10. 19 11月, 2015 1 次提交
  11. 13 11月, 2015 2 次提交
  12. 10 11月, 2015 15 次提交
  13. 04 11月, 2015 3 次提交
    • L
      migration: code clean up · 6ad2a215
      Liang Li 提交于
      Just clean up code, no behavior change.
      Signed-off-by: NLiang Li <liang.z.li@intel.com>
      Reviewed-by: Juan Quintela <quintela@redhat.com>al3
      Reviewed-by: Amit Shah <amit.shah@redhat.com>al3
      Signed-off-by: Juan Quintela <quintela@redhat.com>al3
      6ad2a215
    • L
      migration: rename cancel to cleanup in SaveVMHandles · d1a8548c
      Liang Li 提交于
      'cleanup' seems more appropriate than 'cancel'.
      Signed-off-by: NLiang Li <liang.z.li@intel.com>
      Reviewed-by: Juan Quintela <quintela@redhat.com>al3
      Reviewed-by: Amit Shah <amit.shah@redhat.com>al3
      Signed-off-by: Juan Quintela <quintela@redhat.com>al3
      d1a8548c
    • L
      migration: defer migration_end & blk_mig_cleanup · 94f5a437
      Liang Li 提交于
      Because of the patch 3ea3b7fa9af067982f34b of kvm, which introduces a
      lazy collapsing of small sptes into large sptes mechanism, now
      migration_end() is a time consuming operation because it calls
      memroy_global_dirty_log_stop(), which will trigger the dropping of small
      sptes operation and takes about dozens of milliseconds, so call
      migration_end() before all the vmsate data has already been transferred
      to the destination will prolong VM downtime. This operation should be
      deferred after all the data has been transferred to the destination.
      
      blk_mig_cleanup() can be deferred too.
      
      For a VM with 8G RAM, this patch can reduce the VM downtime about 30 ms.
      Signed-off-by: NLiang Li <liang.z.li@intel.com>
      Reviewed-by: NPaolo Bonzini <pbonzini@redhat.com>
      Reviewed-by: Juan Quintela <quintela@redhat.com>al3
      Reviewed-by: Amit Shah <amit.shah@redhat.com>al3
      Signed-off-by: Juan Quintela <quintela@redhat.com>al3
      94f5a437
  14. 15 10月, 2015 1 次提交
    • D
      migration: fix deadlock · 60be6340
      Denis V. Lunev 提交于
      Release qemu global mutex before call synchronize_rcu().
      synchronize_rcu() waiting for all readers to finish their critical
      sections. There is at least one critical section in which we try
      to get QGM (critical section is in address_space_rw() and
      prepare_mmio_access() is trying to aquire QGM).
      
      Both functions (migration_end() and migration_bitmap_extend())
      are called from main thread which is holding QGM.
      
      Thus there is a race condition that ends up with deadlock:
      main thread     working thread
      Lock QGA                |
      |             Call KVM_EXIT_IO handler
      |                       |
      |        Open rcu reader's critical section
      Migration cleanup bh    |
      |                       |
      synchronize_rcu() is    |
      waiting for readers     |
      |            prepare_mmio_access() is waiting for QGM
        \                   /
               deadlock
      
      The patch changes bitmap freeing from direct g_free after synchronize_rcu
      to free inside call_rcu.
      Signed-off-by: NDenis V. Lunev <den@openvz.org>
      Reported-by: NIgor Redko <redkoi@virtuozzo.com>
      Tested-by: NIgor Redko <redkoi@virtuozzo.com>
      Reviewed-by: NPaolo Bonzini <pbonzini@redhat.com>
      Reviewed-by: NJuan Quintela <quintela@redhat.com>
      Signed-off-by: NJuan Quintela <quintela@redhat.com>
      
      CC: Anna Melekhova <annam@virtuozzo.com>
      CC: Juan Quintela <quintela@redhat.com>
      CC: Amit Shah <amit.shah@redhat.com>
      CC: Paolo Bonzini <pbonzini@redhat.com>
      CC: Wen Congyang <wency@cn.fujitsu.com>
      60be6340
  15. 30 9月, 2015 1 次提交
  16. 29 9月, 2015 3 次提交
  17. 15 7月, 2015 1 次提交