1. 26 3月, 2013 4 次提交
  2. 12 3月, 2013 2 次提交
  3. 11 3月, 2013 3 次提交
  4. 01 3月, 2013 1 次提交
  5. 21 12月, 2012 1 次提交
    • J
      savevm: New save live migration method: pending · e4ed1541
      Juan Quintela 提交于
      Code just now does (simplified for clarity)
      
          if (qemu_savevm_state_iterate(s->file) == 1) {
             vm_stop_force_state(RUN_STATE_FINISH_MIGRATE);
             qemu_savevm_state_complete(s->file);
          }
      
      Problem here is that qemu_savevm_state_iterate() returns 1 when it
      knows that remaining memory to sent takes less than max downtime.
      
      But this means that we could end spending 2x max_downtime, one
      downtime in qemu_savevm_iterate, and the other in
      qemu_savevm_state_complete.
      
      Changed code to:
      
          pending_size = qemu_savevm_state_pending(s->file, max_size);
          DPRINTF("pending size %lu max %lu\n", pending_size, max_size);
          if (pending_size >= max_size) {
              ret = qemu_savevm_state_iterate(s->file);
           } else {
              vm_stop_force_state(RUN_STATE_FINISH_MIGRATE);
              qemu_savevm_state_complete(s->file);
           }
      
      So what we do is: at current network speed, we calculate the maximum
      number of bytes we can sent: max_size.
      
      Then we ask every save_live section how much they have pending.  If
      they are less than max_size, we move to complete phase, otherwise we
      do an iterate one.
      
      This makes things much simpler, because now individual sections don't
      have to caluclate the bandwidth (it was implossible to do right from
      there).
      Signed-off-by: NJuan Quintela <quintela@redhat.com>
      Reviewed-by: NPaolo Bonzini <pbonzini@redhat.com>
      e4ed1541
  6. 19 12月, 2012 1 次提交
  7. 30 10月, 2012 1 次提交
  8. 11 9月, 2012 1 次提交
  9. 20 7月, 2012 8 次提交
  10. 29 6月, 2012 1 次提交
  11. 15 3月, 2012 1 次提交
  12. 14 1月, 2012 1 次提交
  13. 04 1月, 2012 1 次提交
    • A
      vmstate, memory: decouple vmstate from memory API · c5705a77
      Avi Kivity 提交于
      Currently creating a memory region automatically registers it for
      live migration.  This differs from other state (which is enumerated
      in a VMStateDescription structure) and ties the live migration code
      into the memory core.
      
      Decouple the two by introducing a separate API, vmstate_register_ram(),
      for registering a RAM block for migration.  Currently the same
      implementation is reused, but later it can be moved into a separate list,
      and registrations can be moved to VMStateDescription blocks.
      Signed-off-by: NAvi Kivity <avi@redhat.com>
      c5705a77
  14. 13 12月, 2011 1 次提交
  15. 20 10月, 2011 2 次提交
  16. 10 8月, 2011 1 次提交
  17. 20 7月, 2011 1 次提交
  18. 19 6月, 2011 1 次提交
  19. 23 4月, 2011 1 次提交
  20. 11 3月, 2011 7 次提交