Patchwork Make live saving stages public and use their #defines

login
register
mail settings
Submitter Stefan Berger
Date March 27, 2012, 1:13 a.m.
Message ID <1332810817.25443.3.camel@d941e-10>
Download mbox | patch
Permalink /patch/148850/
State New
Headers show

Comments

Stefan Berger - March 27, 2012, 1:13 a.m.
Make the different stages for live saving of state public and use
the #defines rather than numbers.

Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>

---
 arch_init.c       |    7 ++++---
 block-migration.c |    8 ++++----
 savevm.c          |    7 -------
 vmstate.h         |    8 ++++++++
 4 files changed, 16 insertions(+), 14 deletions(-)

Patch

Index: qemu/savevm.c
===================================================================
--- qemu.orig/savevm.c
+++ qemu/savevm.c
@@ -1541,13 +1541,6 @@  static void vmstate_save(QEMUFile *f, Sa
 #define QEMU_VM_FILE_VERSION_COMPAT  0x00000002
 #define QEMU_VM_FILE_VERSION         0x00000003
 
-#define QEMU_VM_EOF                  0x00
-#define QEMU_VM_SECTION_START        0x01
-#define QEMU_VM_SECTION_PART         0x02
-#define QEMU_VM_SECTION_END          0x03
-#define QEMU_VM_SECTION_FULL         0x04
-#define QEMU_VM_SUBSECTION           0x05
-
 bool qemu_savevm_state_blocked(Error **errp)
 {
     SaveStateEntry *se;
Index: qemu/vmstate.h
===================================================================
--- qemu.orig/vmstate.h
+++ qemu/vmstate.h
@@ -31,6 +31,14 @@  typedef void SaveStateHandler(QEMUFile *
 typedef int SaveLiveStateHandler(QEMUFile *f, int stage, void *opaque);
 typedef int LoadStateHandler(QEMUFile *f, void *opaque, int version_id);
 
+/* stages of the live state handler */
+#define QEMU_VM_EOF                  0x00
+#define QEMU_VM_SECTION_START        0x01
+#define QEMU_VM_SECTION_PART         0x02
+#define QEMU_VM_SECTION_END          0x03
+#define QEMU_VM_SECTION_FULL         0x04
+#define QEMU_VM_SUBSECTION           0x05
+
 int register_savevm(DeviceState *dev,
                     const char *idstr,
                     int instance_id,
Index: qemu/arch_init.c
===================================================================
--- qemu.orig/arch_init.c
+++ qemu/arch_init.c
@@ -275,7 +275,7 @@  int ram_save_live(QEMUFile *f, int stage
 
     memory_global_sync_dirty_bitmap(get_system_memory());
 
-    if (stage == 1) {
+    if (stage == QEMU_VM_SECTION_START) {
         RAMBlock *block;
         bytes_transferred = 0;
         last_block = NULL;
@@ -330,7 +330,7 @@  int ram_save_live(QEMUFile *f, int stage
     }
 
     /* try transferring iterative blocks of memory */
-    if (stage == 3) {
+    if (stage == QEMU_VM_SECTION_END) {
         int bytes_sent;
 
         /* flush all remaining blocks regardless of rate limiting */
@@ -344,7 +344,8 @@  int ram_save_live(QEMUFile *f, int stage
 
     expected_time = ram_save_remaining() * TARGET_PAGE_SIZE / bwidth;
 
-    return (stage == 2) && (expected_time <= migrate_max_downtime());
+    return (stage == QEMU_VM_SECTION_PART) &&
+           (expected_time <= migrate_max_downtime());
 }
 
 static inline void *host_from_stream_offset(QEMUFile *f,
Index: qemu/block-migration.c
===================================================================
--- qemu.orig/block-migration.c
+++ qemu/block-migration.c
@@ -554,7 +554,7 @@  static int block_save_live(QEMUFile *f, 
         return 1;
     }
 
-    if (stage == 1) {
+    if (stage == QEMU_VM_SECTION_START) {
         init_blk_migration(f);
 
         /* start track dirty blocks */
@@ -571,7 +571,7 @@  static int block_save_live(QEMUFile *f, 
 
     blk_mig_reset_dirty_cursor();
 
-    if (stage == 2) {
+    if (stage == QEMU_VM_SECTION_PART) {
         /* control the rate of transfer */
         while ((block_mig_state.submitted +
                 block_mig_state.read_done) * BLOCK_SIZE <
@@ -599,7 +599,7 @@  static int block_save_live(QEMUFile *f, 
         }
     }
 
-    if (stage == 3) {
+    if (stage == QEMU_VM_SECTION_END) {
         /* we know for sure that save bulk is completed and
            all async read completed */
         assert(block_mig_state.submitted == 0);
@@ -620,7 +620,7 @@  static int block_save_live(QEMUFile *f, 
 
     qemu_put_be64(f, BLK_MIG_FLAG_EOS);
 
-    return ((stage == 2) && is_stage2_completed());
+    return ((stage == QEMU_VM_SECTION_PART) && is_stage2_completed());
 }
 
 static int block_load(QEMUFile *f, void *opaque, int version_id)