This patch prepares for postcopy livemigration. It introduces -postcopy option and its internal flag, migration_postcopy. It introduces -postcopy-flags for chaging the behavior of incoming postcopy mainly for benchmark/debug. Signed-off-by: Isaku Yamahata <yamahata@xxxxxxxxxxxxx> --- migration.h | 3 +++ qemu-options.hx | 22 ++++++++++++++++++++++ vl.c | 8 ++++++++ 3 files changed, 33 insertions(+), 0 deletions(-) diff --git a/migration.h b/migration.h index 59e6e68..4bbcf06 100644 --- a/migration.h +++ b/migration.h @@ -103,4 +103,7 @@ void migrate_add_blocker(Error *reason); */ void migrate_del_blocker(Error *reason); +extern bool incoming_postcopy; +extern unsigned long incoming_postcopy_flags; + #endif diff --git a/qemu-options.hx b/qemu-options.hx index 8b66264..a9af31e 100644 --- a/qemu-options.hx +++ b/qemu-options.hx @@ -2616,6 +2616,28 @@ STEXI Prepare for incoming migration, listen on @var{port}. ETEXI +DEF("postcopy", 0, QEMU_OPTION_postcopy, + "-postcopy postcopy incoming migration when -incoming is specified\n", + QEMU_ARCH_ALL) +STEXI +@item -postcopy +@findex -postcopy +start incoming migration in postcopy mode. +ETEXI + +DEF("postcopy-flags", HAS_ARG, QEMU_OPTION_postcopy_flags, + "-postcopy-flags unsigned-int(flags)\n" + " flags for postcopy incoming migration\n" + " when -incoming and -postcopy are specified.\n" + " This is for benchmark/debug purpose (default: 0)\n", + QEMU_ARCH_ALL) +STEXI +@item -postcopy-flags int +@findex -postcopy-flags +Specify flags for incoming postcopy migration when -incoming and -postcopy are +specified. This is for benchamrk/debug purpose. (default: 0) +ETEXI + DEF("nodefaults", 0, QEMU_OPTION_nodefaults, \ "-nodefaults don't create default devices\n", QEMU_ARCH_ALL) STEXI diff --git a/vl.c b/vl.c index 62dc343..1674abb 100644 --- a/vl.c +++ b/vl.c @@ -189,6 +189,8 @@ int mem_prealloc = 0; /* force preallocation of physical target memory */ int nb_nics; NICInfo nd_table[MAX_NICS]; int autostart; +bool incoming_postcopy = false; /* When -incoming is specified, postcopy mode */ +unsigned long incoming_postcopy_flags = 0; /* flags for postcopy incoming mode */ static int rtc_utc = 1; static int rtc_date_offset = -1; /* -1 means no change */ QEMUClock *rtc_clock; @@ -3115,6 +3117,12 @@ int main(int argc, char **argv, char **envp) incoming = optarg; runstate_set(RUN_STATE_INMIGRATE); break; + case QEMU_OPTION_postcopy: + incoming_postcopy = true; + break; + case QEMU_OPTION_postcopy_flags: + incoming_postcopy_flags = strtoul(optarg, NULL, 0); + break; case QEMU_OPTION_nodefaults: default_serial = 0; default_parallel = 0; -- 1.7.1.1 -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html