Switch the memory savevm handler to be "live"

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: Anthony Liguori <aliguori@us.ibm.com>



git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5437 c046a42c-6fe2-441c-8c8c-71466251a162
1 file changed
tree: 19382473b062c841833810eb6ecbdcd59303f2f0
  1. audio/
  2. darwin-user/
  3. fpu/
  4. hw/
  5. keymaps/
  6. linux-user/
  7. pc-bios/
  8. slirp/
  9. target-alpha/
  10. target-arm/
  11. target-cris/
  12. target-i386/
  13. target-m68k/
  14. target-mips/
  15. target-ppc/
  16. target-sh4/
  17. target-sparc/
  18. tcg/
  19. tests/
  20. .gitignore
  21. a.out.h
  22. aes.c
  23. aes.h
  24. aio.c
  25. alpha-dis.c
  26. alpha.ld
  27. arm-dis.c
  28. arm-semi.c
  29. arm.ld
  30. block-bochs.c
  31. block-cloop.c
  32. block-cow.c
  33. block-dmg.c
  34. block-nbd.c
  35. block-parallels.c
  36. block-qcow.c
  37. block-qcow2.c
  38. block-raw-posix.c
  39. block-raw-win32.c
  40. block-vmdk.c
  41. block-vpc.c
  42. block-vvfat.c
  43. block.c
  44. block.h
  45. block_int.h
  46. bswap.h
  47. bt-host.c
  48. bt-vhci.c
  49. Changelog
  50. check_ops.sh
  51. cocoa.m
  52. compatfd.c
  53. compatfd.h
  54. configure
  55. console.c
  56. console.h
  57. COPYING
  58. COPYING.LIB
  59. cpu-all.h
  60. cpu-defs.h
  61. cpu-exec.c
  62. cris-dis.c
  63. curses.c
  64. curses_keys.h
  65. cutils.c
  66. d3des.c
  67. d3des.h
  68. dis-asm.h
  69. disas.c
  70. disas.h
  71. dyngen-exec.h
  72. dyngen.c
  73. elf.h
  74. elf_ops.h
  75. exec-all.h
  76. exec.c
  77. gdbstub.c
  78. gdbstub.h
  79. gen-icount.h
  80. host-utils.c
  81. host-utils.h
  82. hostregs_helper.h
  83. hpet.h
  84. hppa-dis.c
  85. hppa.ld
  86. i386-dis.c
  87. i386.ld
  88. ia64.ld
  89. keymaps.c
  90. kqemu.c
  91. kqemu.h
  92. LICENSE
  93. loader.c
  94. m68k-dis.c
  95. m68k-semi.c
  96. m68k.ld
  97. MAINTAINERS
  98. Makefile
  99. Makefile.target
  100. mips-dis.c
  101. mips.ld
  102. mipsel.ld
  103. monitor.c
  104. nbd.c
  105. nbd.h
  106. net-checksum.c
  107. net.h
  108. osdep.c
  109. osdep.h
  110. ppc-dis.c
  111. ppc.ld
  112. ppc64.ld
  113. qemu-aio.h
  114. qemu-binfmt-conf.sh
  115. qemu-char.h
  116. qemu-common.h
  117. qemu-doc.texi
  118. qemu-img.c
  119. qemu-img.texi
  120. qemu-lock.h
  121. qemu-log.h
  122. qemu-malloc.c
  123. qemu-nbd.c
  124. qemu-nbd.texi
  125. qemu-tech.texi
  126. qemu-timer.h
  127. qemu-tool.c
  128. qemu_socket.h
  129. readline.c
  130. README
  131. s390-dis.c
  132. s390.ld
  133. sdl.c
  134. sdl_keysym.h
  135. sh4-dis.c
  136. softmmu-semi.h
  137. softmmu_defs.h
  138. softmmu_exec.h
  139. softmmu_header.h
  140. softmmu_template.h
  141. sparc-dis.c
  142. sparc.ld
  143. sparc64.ld
  144. sys-queue.h
  145. sysemu.h
  146. tap-win32.c
  147. texi2pod.pl
  148. thunk.c
  149. thunk.h
  150. TODO
  151. translate-all.c
  152. uboot_image.h
  153. usb-linux.c
  154. VERSION
  155. vgafont.h
  156. vl.c
  157. vnc.c
  158. vnc_keysym.h
  159. vnchextile.h
  160. x86_64.ld
  161. x_keymap.c