[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 05/38] migration: Add the configuration vmstate to the json writer
|
From: |
Juan Quintela |
|
Subject: |
[PULL 05/38] migration: Add the configuration vmstate to the json writer |
|
Date: |
Tue, 17 Oct 2023 10:29:30 +0200 |
From: Nikolay Borisov <nborisov@suse.com>
Make the migration json writer part of MigrationState struct, allowing
the 'configuration' object be serialized to json.
This will facilitate the parsing of the 'configuration' object in the
next patch that fixes analyze-migration.py for arm.
Signed-off-by: Nikolay Borisov <nborisov@suse.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231009184326.15777-2-farosas@suse.de>
---
migration/migration.c | 1 +
migration/savevm.c | 20 ++++++++++++++++----
2 files changed, 17 insertions(+), 4 deletions(-)
diff --git a/migration/migration.c b/migration/migration.c
index ed04ca3b1c..98151b1424 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -1442,6 +1442,7 @@ int migrate_init(MigrationState *s, Error **errp)
error_free(s->error);
s->error = NULL;
s->hostname = NULL;
+ s->vmdesc = NULL;
migrate_set_state(&s->state, MIGRATION_STATUS_NONE,
MIGRATION_STATUS_SETUP);
diff --git a/migration/savevm.c b/migration/savevm.c
index 497ce02bd7..bce698b0af 100644
--- a/migration/savevm.c
+++ b/migration/savevm.c
@@ -1217,13 +1217,27 @@ void qemu_savevm_non_migratable_list(strList **reasons)
void qemu_savevm_state_header(QEMUFile *f)
{
+ MigrationState *s = migrate_get_current();
+
+ s->vmdesc = json_writer_new(false);
+
trace_savevm_state_header();
qemu_put_be32(f, QEMU_VM_FILE_MAGIC);
qemu_put_be32(f, QEMU_VM_FILE_VERSION);
- if (migrate_get_current()->send_configuration) {
+ if (s->send_configuration) {
qemu_put_byte(f, QEMU_VM_CONFIGURATION);
- vmstate_save_state(f, &vmstate_configuration, &savevm_state, 0);
+
+ /*
+ * This starts the main json object and is paired with the
+ * json_writer_end_object in
+ * qemu_savevm_state_complete_precopy_non_iterable
+ */
+ json_writer_start_object(s->vmdesc, NULL);
+
+ json_writer_start_object(s->vmdesc, "configuration");
+ vmstate_save_state(f, &vmstate_configuration, &savevm_state,
s->vmdesc);
+ json_writer_end_object(s->vmdesc);
}
}
@@ -1272,8 +1286,6 @@ void qemu_savevm_state_setup(QEMUFile *f)
Error *local_err = NULL;
int ret;
- ms->vmdesc = json_writer_new(false);
- json_writer_start_object(ms->vmdesc, NULL);
json_writer_int64(ms->vmdesc, "page_size", qemu_target_page_size());
json_writer_start_array(ms->vmdesc, "devices");
--
2.41.0
- [PULL 15/38] migration/rdma: Unfold ram_control_before_iterate(), (continued)
- [PULL 15/38] migration/rdma: Unfold ram_control_before_iterate(), Juan Quintela, 2023/10/17
- [PULL 04/38] migration: fix RAMBlock add NULL check, Juan Quintela, 2023/10/17
- [PULL 07/38] migration: Add capability parsing to analyze-migration.py, Juan Quintela, 2023/10/17
- [PULL 09/38] migration: Fix analyze-migration read operation signedness, Juan Quintela, 2023/10/17
- [PULL 08/38] migration: Fix analyze-migration.py when ignore-shared is used, Juan Quintela, 2023/10/17
- [PULL 17/38] migration/rdma: Remove all uses of RAM_CONTROL_HOOK, Juan Quintela, 2023/10/17
- [PULL 06/38] migration: Fix analyze-migration.py 'configuration' parsing, Juan Quintela, 2023/10/17
- [PULL 23/38] migration/rdma: Check sooner if we are in postcopy for save_page(), Juan Quintela, 2023/10/17
- [PULL 11/38] tests/qtest: migration-test: Add tests for file-based migration, Juan Quintela, 2023/10/17
- [PULL 21/38] migration/rdma: Move rdma constants from qemu-file.h to rdma.h, Juan Quintela, 2023/10/17
- [PULL 05/38] migration: Add the configuration vmstate to the json writer,
Juan Quintela <=
- [PULL 19/38] migration/rdma: Create rdma_control_save_page(), Juan Quintela, 2023/10/17
- [PULL 13/38] migration: Non multifd migration don't care about multifd flushes, Juan Quintela, 2023/10/17
- [PULL 27/38] migration: Improve json and formatting, Juan Quintela, 2023/10/17
- [PULL 28/38] migration: check for rate_limit_max for RATE_LIMIT_DISABLED, Juan Quintela, 2023/10/17
- [PULL 12/38] migration: hold the BQL during setup, Juan Quintela, 2023/10/17
- [PULL 16/38] migration/rdma: Unfold ram_control_after_iterate(), Juan Quintela, 2023/10/17
- [PULL 18/38] migration/rdma: Unfold hook_ram_load(), Juan Quintela, 2023/10/17
- [PULL 14/38] migration: Create migrate_rdma(), Juan Quintela, 2023/10/17