[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH COLO-Frame v16 28/35] migration/savevm: Export two h
From: |
zhanghailiang |
Subject: |
[Qemu-devel] [PATCH COLO-Frame v16 28/35] migration/savevm: Export two helper functions for savevm process |
Date: |
Fri, 8 Apr 2016 14:26:30 +0800 |
We add a new helper functions qemu_savevm_live_state(),
and make qemu_save_device_state() public.
Signed-off-by: zhanghailiang <address@hidden>
Signed-off-by: Li Zhijian <address@hidden>
Reviewed-by: Dr. David Alan Gilbert <address@hidden>
---
v15:
- Add Reviewd-by tag
v14:
- New patch split from previous
'COLO: Separate the process of saving/loading ram and device state
---
include/sysemu/sysemu.h | 3 +++
migration/savevm.c | 16 ++++++++++++----
2 files changed, 15 insertions(+), 4 deletions(-)
diff --git a/include/sysemu/sysemu.h b/include/sysemu/sysemu.h
index 2e8f397..7390db1 100644
--- a/include/sysemu/sysemu.h
+++ b/include/sysemu/sysemu.h
@@ -132,6 +132,9 @@ void qemu_savevm_send_postcopy_ram_discard(QEMUFile *f,
const char *name,
uint64_t *start_list,
uint64_t *length_list);
+void qemu_savevm_live_state(QEMUFile *f);
+int qemu_save_device_state(QEMUFile *f);
+
int qemu_loadvm_state(QEMUFile *f);
int qemu_loadvm_state_begin(QEMUFile *f);
int qemu_loadvm_state_main(QEMUFile *f, MigrationIncomingState *mis);
diff --git a/migration/savevm.c b/migration/savevm.c
index c1f57a6..26e95d2 100644
--- a/migration/savevm.c
+++ b/migration/savevm.c
@@ -50,6 +50,7 @@
#include "block/snapshot.h"
#include "block/qapi.h"
#include "qemu/cutils.h"
+#include "migration/colo.h"
#ifndef ETH_P_RARP
#define ETH_P_RARP 0x8035
@@ -1196,13 +1197,20 @@ static int qemu_savevm_state(QEMUFile *f, Error **errp)
return ret;
}
-static int qemu_save_device_state(QEMUFile *f)
+void qemu_savevm_live_state(QEMUFile *f)
{
- SaveStateEntry *se;
+ /* save QEMU_VM_SECTION_END section */
+ qemu_savevm_state_complete_precopy(f, true);
+ qemu_put_byte(f, QEMU_VM_EOF);
+}
- qemu_put_be32(f, QEMU_VM_FILE_MAGIC);
- qemu_put_be32(f, QEMU_VM_FILE_VERSION);
+int qemu_save_device_state(QEMUFile *f)
+{
+ SaveStateEntry *se;
+ if (!migration_in_colo_state()) {
+ qemu_savevm_state_header(f);
+ }
cpu_synchronize_all_states();
QTAILQ_FOREACH(se, &savevm_state.handlers, entry) {
--
1.8.3.1
- [Qemu-devel] [PATCH COLO-Frame v16 10/35] COLO: Save PVM state to secondary side when do checkpoint, (continued)
- [Qemu-devel] [PATCH COLO-Frame v16 10/35] COLO: Save PVM state to secondary side when do checkpoint, zhanghailiang, 2016/04/08
- [Qemu-devel] [PATCH COLO-Frame v16 14/35] COLO: Flush PVM's cached RAM into SVM's memory, zhanghailiang, 2016/04/08
- [Qemu-devel] [PATCH COLO-Frame v16 12/35] ram/COLO: Record the dirty pages that SVM received, zhanghailiang, 2016/04/08
- [Qemu-devel] [PATCH COLO-Frame v16 23/35] COLO failover: Don't do failover during loading VM's state, zhanghailiang, 2016/04/08
- [Qemu-devel] [PATCH COLO-Frame v16 20/35] COLO: Implement failover work for Secondary VM, zhanghailiang, 2016/04/08
- [Qemu-devel] [PATCH COLO-Frame v16 16/35] COLO: synchronize PVM's state to SVM periodically, zhanghailiang, 2016/04/08
- [Qemu-devel] [PATCH COLO-Frame v16 26/35] savevm: Introduce two helper functions for save/find loadvm_handlers entry, zhanghailiang, 2016/04/08
- [Qemu-devel] [PATCH COLO-Frame v16 27/35] migration/savevm: Add new helpers to process the different stages of loadvm, zhanghailiang, 2016/04/08
- [Qemu-devel] [PATCH COLO-Frame v16 28/35] migration/savevm: Export two helper functions for savevm process,
zhanghailiang <=
- [Qemu-devel] [PATCH COLO-Frame v16 24/35] COLO: Process shutdown command for VM in COLO state, zhanghailiang, 2016/04/08
- [Qemu-devel] [PATCH COLO-Frame v16 21/35] qmp event: Add COLO_EXIT event to notify users while exited from COLO, zhanghailiang, 2016/04/08
- [Qemu-devel] [PATCH COLO-Frame v16 19/35] COLO: Implement failover work for Primary VM, zhanghailiang, 2016/04/08
- [Qemu-devel] [PATCH COLO-Frame v16 11/35] COLO: Load PVM's dirty pages into SVM's RAM cache temporarily, zhanghailiang, 2016/04/08
- [Qemu-devel] [PATCH COLO-Frame v16 17/35] COLO failover: Introduce a new command to trigger a failover, zhanghailiang, 2016/04/08
- [Qemu-devel] [PATCH COLO-Frame v16 18/35] COLO failover: Introduce state to record failover process, zhanghailiang, 2016/04/08
- [Qemu-devel] [PATCH COLO-Frame v16 25/35] COLO: Update the global runstate after going into colo state, zhanghailiang, 2016/04/08
- [Qemu-devel] [PATCH COLO-Frame v16 30/35] COLO: Split qemu_savevm_state_begin out of checkpoint process, zhanghailiang, 2016/04/08