1. 11 1月, 2013 1 次提交
  2. 03 1月, 2013 1 次提交
    • M
      savevm.c: cleanup system includes · 74e91370
      Michael Tokarev 提交于
      savevm.c suffers from the same problem as some other files.
      Some years ago savevm.c was created from vl.c, moving some
      code from there into a separate file.  At that time, all
      includes were just copied from vl.c to savevm.c, without
      checking which ones are needed and which are not.
      
      But actually most of that stuff is _not_ needed.  More, some
      stuff is wrong, for example, *BSD #ifdef'ery around <util.h>
      vs <libutil.h> - for one, it fails to build on Debian/kFreebsd.
      
      Just remove all this.  Maybe there's a possibility to clean
      it up further - like removing <windows.h> (and maybe including
      winsock.h for htons etc), and maybe it's possible to remove
      some internal #includes too, but I didn't check this.
      
      While at it, remove duplicate #include of qemu/timer.h.
      Signed-off-by: NMichael Tokarev <mjt@tls.msk.ru>
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      74e91370
  3. 21 12月, 2012 2 次提交
    • 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
    • J
      migration: make writes blocking · dd217b87
      Juan Quintela 提交于
      Move all the writes to the migration_thread, and make writings
      blocking.  Notice that are still using the iothread for everything
      that we do.
      Signed-off-by: NJuan Quintela <quintela@redhat.com>
      dd217b87
  4. 19 12月, 2012 7 次提交
  5. 03 11月, 2012 6 次提交
  6. 30 10月, 2012 1 次提交
  7. 18 10月, 2012 9 次提交
  8. 05 10月, 2012 1 次提交
  9. 16 8月, 2012 1 次提交
    • A
      xbzrle: fix compilation on ppc32 · a5b71725
      Alexander Graf 提交于
      When compiling the xbzrle code on my ppc32 user space, I hit the following
      gcc compiler warning (treated as an error):
      
        cc1: warnings being treated as errors
        savevm.c: In function ‘xbzrle_encode_buffer’:
        savevm.c:2476: error: overflow in implicit constant conversion
      
      Fix this by making the cast explicit, rather than implicit.
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      a5b71725
  10. 15 8月, 2012 1 次提交
  11. 08 8月, 2012 1 次提交
  12. 20 7月, 2012 6 次提交
  13. 29 6月, 2012 3 次提交