[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 6/8] migration: Add RAM part of migration stream
From: |
nikita . lapshin |
Subject: |
[PATCH 6/8] migration: Add RAM part of migration stream |
Date: |
Thu, 16 Jun 2022 13:20:04 +0300 |
From: Nikita Lapshin <nikita.lapshin@openvz.org>
'ram' parameter enable RAM sections in migration stream. If it
isn't specified it will be skipped.
Signed-off-by: Nikita Lapshin <nikita.lapshin@openvz.org>
---
migration/migration.c | 17 ++++++++++++++++-
migration/migration.h | 1 +
migration/ram.c | 6 ++++++
3 files changed, 23 insertions(+), 1 deletion(-)
diff --git a/migration/migration.c b/migration/migration.c
index d81f3c6891..6528b3ad41 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -1339,7 +1339,8 @@ static bool check_stream_parts(strList *stream_list)
for (; stream_list; stream_list = stream_list->next) {
if (!strcmp(stream_list->value, "vmstate") ||
!strcmp(stream_list->value, "dirty-bitmaps") ||
- !strcmp(stream_list->value, "block")) {
+ !strcmp(stream_list->value, "block") ||
+ !strcmp(stream_list->value, "ram")) {
continue;
}
@@ -2653,6 +2654,20 @@ bool migrate_background_snapshot(void)
return s->enabled_capabilities[MIGRATION_CAPABILITY_BACKGROUND_SNAPSHOT];
}
+bool migrate_ram(void)
+{
+ MigrationState *s;
+
+ s = migrate_get_current();
+
+ /*
+ * By default RAM is enabled so if stream-content-list disabled
+ * RAM will be passed.
+ */
+ return !s->parameters.has_stream_content_list ||
+ migrate_find_stream_content("ram");
+}
+
/* Checks if stream-content parameter has section_name in list */
bool migrate_find_stream_content(const char *section_name)
{
diff --git a/migration/migration.h b/migration/migration.h
index 411c58e919..5c43788a2b 100644
--- a/migration/migration.h
+++ b/migration/migration.h
@@ -395,6 +395,7 @@ int migrate_decompress_threads(void);
bool migrate_use_events(void);
bool migrate_postcopy_blocktime(void);
bool migrate_background_snapshot(void);
+bool migrate_ram(void);
bool migrate_find_stream_content(const char *section_name);
diff --git a/migration/ram.c b/migration/ram.c
index 170e522a1f..ddc7abd08a 100644
--- a/migration/ram.c
+++ b/migration/ram.c
@@ -4263,6 +4263,11 @@ static int ram_resume_prepare(MigrationState *s, void
*opaque)
return 0;
}
+static bool is_ram_active(void *opaque)
+{
+ return migrate_ram();
+}
+
static SaveVMHandlers savevm_ram_handlers = {
.save_setup = ram_save_setup,
.save_live_iterate = ram_save_iterate,
@@ -4275,6 +4280,7 @@ static SaveVMHandlers savevm_ram_handlers = {
.load_setup = ram_load_setup,
.load_cleanup = ram_load_cleanup,
.resume_prepare = ram_resume_prepare,
+ .is_active = is_ram_active,
};
static void ram_mig_ram_block_resized(RAMBlockNotifier *n, void *host,
--
2.31.1
- Re: [PATCH 1/8] migration: Implemented new parameter stream_content, (continued)
[PATCH 7/8] migration: analyze-migration script changed, nikita . lapshin, 2022/06/16
[PATCH 4/8] migration: Add dirty-bitmaps part of migration stream, nikita . lapshin, 2022/06/16
[PATCH 5/8] migration: Add block part of migration stream, nikita . lapshin, 2022/06/16
[PATCH 5/8] Add block part of migration stream, nikita . lapshin, 2022/06/16
[PATCH 4/8] igration: Add dirty-bitmaps part of migration stream, nikita . lapshin, 2022/06/16
[PATCH 6/8] migration: Add RAM part of migration stream,
nikita . lapshin <=
[PATCH 8/8] migration: Test for RAM and vmstate parts, nikita . lapshin, 2022/06/16
[PATCH 2/8] migration: should_skip() implemented, nikita . lapshin, 2022/06/16