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> postcopy: introduce -postcopy-flags option 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 2e79779..29f468c 100644 --- a/migration.h +++ b/migration.h @@ -105,4 +105,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 a60191f..5c5b8f3 100644 --- a/qemu-options.hx +++ b/qemu-options.hx @@ -2497,6 +2497,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 a4c9489..5430b8c 100644 --- a/vl.c +++ b/vl.c @@ -188,6 +188,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; @@ -2969,6 +2971,12 @@ int main(int argc, char **argv, char **envp) case QEMU_OPTION_incoming: incoming = optarg; 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