From: Isaku Yamahata <yamahata@valinux.co.jp> To: kvm@vger.kernel.org, qemu-devel@nongnu.org Cc: yamahata@valinux.co.jp, t.hirofuchi@aist.go.jp, satoshi.itoh@aist.go.jp Subject: [PATCH 20/21] postcopy outgoing: add -p and -n option to migrate command Date: Thu, 29 Dec 2011 10:25:59 +0900 [thread overview] Message-ID: <94f5b9221f069d3ee4a5dd73bd76e2a4a8415d05.1325055140.git.yamahata@valinux.co.jp> (raw) In-Reply-To: <cover.1325055139.git.yamahata@valinux.co.jp> In-Reply-To: <cover.1325055139.git.yamahata@valinux.co.jp> Added -p option to migrate command for postcopy mode and introduce postcopy parameter for migration to indicate that postcopy mode is enabled. Add -n option for postcopy migration which indicates disabling background transfer. Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp> --- hmp-commands.hx | 12 ++++++++---- migration.c | 2 ++ migration.h | 2 ++ qmp-commands.hx | 10 +++++++--- savevm.c | 2 ++ 5 files changed, 21 insertions(+), 7 deletions(-) diff --git a/hmp-commands.hx b/hmp-commands.hx index 14838b7..42a5f7e 100644 --- a/hmp-commands.hx +++ b/hmp-commands.hx @@ -746,24 +746,28 @@ ETEXI { .name = "migrate", - .args_type = "detach:-d,blk:-b,inc:-i,uri:s", - .params = "[-d] [-b] [-i] uri", + .args_type = "detach:-d,blk:-b,inc:-i,postcopy:-p,nobg:-n,uri:s", + .params = "[-d] [-b] [-i] [-p [-n]] uri", .help = "migrate to URI (using -d to not wait for completion)" "\n\t\t\t -b for migration without shared storage with" " full copy of disk\n\t\t\t -i for migration without " "shared storage with incremental copy of disk " - "(base image shared between src and destination)", + "(base image shared between src and destination)" + "\n\t\t\t-p for migration with postcopy mode enabled" + "\n\t\t\t-n for no background transfer of postcopy mode", .user_print = monitor_user_noop, .mhandler.cmd_new = do_migrate, }, STEXI -@item migrate [-d] [-b] [-i] @var{uri} +@item migrate [-d] [-b] [-i] [-p [-n]] @var{uri} @findex migrate Migrate to @var{uri} (using -d to not wait for completion). -b for migration with full copy of disk -i for migration with incremental copy of disk (base image is shared) + -p for migration with postcopy mode enabled + -n for migration with postcopy mode enabled without background transfer ETEXI { diff --git a/migration.c b/migration.c index 2cef246..0149ab3 100644 --- a/migration.c +++ b/migration.c @@ -422,6 +422,8 @@ int do_migrate(Monitor *mon, const QDict *qdict, QObject **ret_data) params.blk = qdict_get_try_bool(qdict, "blk", 0); params.shared = qdict_get_try_bool(qdict, "inc", 0); + params.postcopy = qdict_get_try_bool(qdict, "postcopy", 0); + params.nobg = qdict_get_try_bool(qdict, "nobg", 0); if (s->state == MIG_STATE_ACTIVE) { monitor_printf(mon, "migration already in progress\n"); diff --git a/migration.h b/migration.h index 29f468c..90ae362 100644 --- a/migration.h +++ b/migration.h @@ -22,6 +22,8 @@ struct MigrationParams { int blk; int shared; + int postcopy; + int nobg; }; typedef struct MigrationState MigrationState; diff --git a/qmp-commands.hx b/qmp-commands.hx index 7e3f4b9..67c7df6 100644 --- a/qmp-commands.hx +++ b/qmp-commands.hx @@ -430,13 +430,15 @@ EQMP { .name = "migrate", - .args_type = "detach:-d,blk:-b,inc:-i,uri:s", - .params = "[-d] [-b] [-i] uri", + .args_type = "detach:-d,blk:-b,inc:-i,postcopy:-p,nobg:-n,uri:s", + .params = "[-d] [-b] [-i [-n]] uri", .help = "migrate to URI (using -d to not wait for completion)" "\n\t\t\t -b for migration without shared storage with" " full copy of disk\n\t\t\t -i for migration without " "shared storage with incremental copy of disk " - "(base image shared between src and destination)", + "(base image shared between src and destination)" + "\n\t\t\t-p for migration with postcopy mode enabled" + "\n\t\t\t-n for no background transfer of postcopy mode", .user_print = monitor_user_noop, .mhandler.cmd_new = do_migrate, }, @@ -451,6 +453,8 @@ Arguments: - "blk": block migration, full disk copy (json-bool, optional) - "inc": incremental disk copy (json-bool, optional) +- "postcopy": postcopy migration (json-bool, optional) +- "nobg": postcopy without background transfer (json-bool, optional) - "uri": Destination URI (json-string) Example: diff --git a/savevm.c b/savevm.c index 2d8e09f..bafb706 100644 --- a/savevm.c +++ b/savevm.c @@ -1715,6 +1715,8 @@ static int qemu_savevm_state(Monitor *mon, QEMUFile *f) MigrationParams params = { .blk = 0, .shared = 0, + .postcopy = 0, + .nobg = 0, }; if (qemu_savevm_state_blocked(mon)) { -- 1.7.1.1
WARNING: multiple messages have this Message-ID (diff)
From: Isaku Yamahata <yamahata@valinux.co.jp> To: kvm@vger.kernel.org, qemu-devel@nongnu.org Cc: yamahata@valinux.co.jp, t.hirofuchi@aist.go.jp, satoshi.itoh@aist.go.jp Subject: [Qemu-devel] [PATCH 20/21] postcopy outgoing: add -p and -n option to migrate command Date: Thu, 29 Dec 2011 10:25:59 +0900 [thread overview] Message-ID: <94f5b9221f069d3ee4a5dd73bd76e2a4a8415d05.1325055140.git.yamahata@valinux.co.jp> (raw) In-Reply-To: <cover.1325055139.git.yamahata@valinux.co.jp> In-Reply-To: <cover.1325055139.git.yamahata@valinux.co.jp> Added -p option to migrate command for postcopy mode and introduce postcopy parameter for migration to indicate that postcopy mode is enabled. Add -n option for postcopy migration which indicates disabling background transfer. Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp> --- hmp-commands.hx | 12 ++++++++---- migration.c | 2 ++ migration.h | 2 ++ qmp-commands.hx | 10 +++++++--- savevm.c | 2 ++ 5 files changed, 21 insertions(+), 7 deletions(-) diff --git a/hmp-commands.hx b/hmp-commands.hx index 14838b7..42a5f7e 100644 --- a/hmp-commands.hx +++ b/hmp-commands.hx @@ -746,24 +746,28 @@ ETEXI { .name = "migrate", - .args_type = "detach:-d,blk:-b,inc:-i,uri:s", - .params = "[-d] [-b] [-i] uri", + .args_type = "detach:-d,blk:-b,inc:-i,postcopy:-p,nobg:-n,uri:s", + .params = "[-d] [-b] [-i] [-p [-n]] uri", .help = "migrate to URI (using -d to not wait for completion)" "\n\t\t\t -b for migration without shared storage with" " full copy of disk\n\t\t\t -i for migration without " "shared storage with incremental copy of disk " - "(base image shared between src and destination)", + "(base image shared between src and destination)" + "\n\t\t\t-p for migration with postcopy mode enabled" + "\n\t\t\t-n for no background transfer of postcopy mode", .user_print = monitor_user_noop, .mhandler.cmd_new = do_migrate, }, STEXI -@item migrate [-d] [-b] [-i] @var{uri} +@item migrate [-d] [-b] [-i] [-p [-n]] @var{uri} @findex migrate Migrate to @var{uri} (using -d to not wait for completion). -b for migration with full copy of disk -i for migration with incremental copy of disk (base image is shared) + -p for migration with postcopy mode enabled + -n for migration with postcopy mode enabled without background transfer ETEXI { diff --git a/migration.c b/migration.c index 2cef246..0149ab3 100644 --- a/migration.c +++ b/migration.c @@ -422,6 +422,8 @@ int do_migrate(Monitor *mon, const QDict *qdict, QObject **ret_data) params.blk = qdict_get_try_bool(qdict, "blk", 0); params.shared = qdict_get_try_bool(qdict, "inc", 0); + params.postcopy = qdict_get_try_bool(qdict, "postcopy", 0); + params.nobg = qdict_get_try_bool(qdict, "nobg", 0); if (s->state == MIG_STATE_ACTIVE) { monitor_printf(mon, "migration already in progress\n"); diff --git a/migration.h b/migration.h index 29f468c..90ae362 100644 --- a/migration.h +++ b/migration.h @@ -22,6 +22,8 @@ struct MigrationParams { int blk; int shared; + int postcopy; + int nobg; }; typedef struct MigrationState MigrationState; diff --git a/qmp-commands.hx b/qmp-commands.hx index 7e3f4b9..67c7df6 100644 --- a/qmp-commands.hx +++ b/qmp-commands.hx @@ -430,13 +430,15 @@ EQMP { .name = "migrate", - .args_type = "detach:-d,blk:-b,inc:-i,uri:s", - .params = "[-d] [-b] [-i] uri", + .args_type = "detach:-d,blk:-b,inc:-i,postcopy:-p,nobg:-n,uri:s", + .params = "[-d] [-b] [-i [-n]] uri", .help = "migrate to URI (using -d to not wait for completion)" "\n\t\t\t -b for migration without shared storage with" " full copy of disk\n\t\t\t -i for migration without " "shared storage with incremental copy of disk " - "(base image shared between src and destination)", + "(base image shared between src and destination)" + "\n\t\t\t-p for migration with postcopy mode enabled" + "\n\t\t\t-n for no background transfer of postcopy mode", .user_print = monitor_user_noop, .mhandler.cmd_new = do_migrate, }, @@ -451,6 +453,8 @@ Arguments: - "blk": block migration, full disk copy (json-bool, optional) - "inc": incremental disk copy (json-bool, optional) +- "postcopy": postcopy migration (json-bool, optional) +- "nobg": postcopy without background transfer (json-bool, optional) - "uri": Destination URI (json-string) Example: diff --git a/savevm.c b/savevm.c index 2d8e09f..bafb706 100644 --- a/savevm.c +++ b/savevm.c @@ -1715,6 +1715,8 @@ static int qemu_savevm_state(Monitor *mon, QEMUFile *f) MigrationParams params = { .blk = 0, .shared = 0, + .postcopy = 0, + .nobg = 0, }; if (qemu_savevm_state_blocked(mon)) { -- 1.7.1.1
next prev parent reply other threads:[~2011-12-29 1:26 UTC|newest] Thread overview: 88+ messages / expand[flat|nested] mbox.gz Atom feed top 2011-12-29 1:25 [PATCH 00/21][RFC] postcopy live migration Isaku Yamahata 2011-12-29 1:25 ` [Qemu-devel] " Isaku Yamahata 2011-12-29 1:25 ` [PATCH 01/21] arch_init: export sort_ram_list() and ram_save_block() Isaku Yamahata 2011-12-29 1:25 ` [Qemu-devel] " Isaku Yamahata 2011-12-29 1:25 ` [PATCH 02/21] arch_init: export RAM_SAVE_xxx flags for postcopy Isaku Yamahata 2011-12-29 1:25 ` [Qemu-devel] " Isaku Yamahata 2011-12-29 1:25 ` [PATCH 03/21] arch_init/ram_save: introduce constant for ram save version = 4 Isaku Yamahata 2011-12-29 1:25 ` [Qemu-devel] " Isaku Yamahata 2011-12-29 1:25 ` [PATCH 04/21] arch_init: refactor host_from_stream_offset() Isaku Yamahata 2011-12-29 1:25 ` [Qemu-devel] " Isaku Yamahata 2011-12-29 1:25 ` [PATCH 05/21] arch_init/ram_save_live: factor out RAM_SAVE_FLAG_MEM_SIZE case Isaku Yamahata 2011-12-29 1:25 ` [Qemu-devel] " Isaku Yamahata 2011-12-29 1:25 ` [PATCH 06/21] arch_init: refactor ram_save_block() Isaku Yamahata 2011-12-29 1:25 ` [Qemu-devel] " Isaku Yamahata 2011-12-29 1:25 ` [PATCH 07/21] arch_init/ram_save_live: factor out ram_save_limit Isaku Yamahata 2011-12-29 1:25 ` [Qemu-devel] " Isaku Yamahata 2011-12-29 1:25 ` [PATCH 08/21] arch_init/ram_load: refactor ram_load Isaku Yamahata 2011-12-29 1:25 ` [Qemu-devel] " Isaku Yamahata 2011-12-29 1:25 ` [PATCH 09/21] exec.c: factor out qemu_get_ram_ptr() Isaku Yamahata 2011-12-29 1:25 ` [Qemu-devel] " Isaku Yamahata 2011-12-29 1:25 ` [PATCH 10/21] exec.c: export last_ram_offset() Isaku Yamahata 2011-12-29 1:25 ` [Qemu-devel] " Isaku Yamahata 2011-12-29 1:25 ` [PATCH 11/21] savevm: export qemu_peek_buffer, qemu_peek_byte, qemu_file_skip Isaku Yamahata 2011-12-29 1:25 ` [Qemu-devel] " Isaku Yamahata 2011-12-29 1:25 ` [PATCH 12/21] savevm: qemu_pending_size() to return pending buffered size Isaku Yamahata 2011-12-29 1:25 ` [Qemu-devel] " Isaku Yamahata 2011-12-29 1:25 ` [PATCH 13/21] savevm, buffered_file: introduce method to drain buffer of buffered file Isaku Yamahata 2011-12-29 1:25 ` [Qemu-devel] " Isaku Yamahata 2011-12-29 1:25 ` [PATCH 14/21] migration: export migrate_fd_completed() and migrate_fd_cleanup() Isaku Yamahata 2011-12-29 1:25 ` [Qemu-devel] " Isaku Yamahata 2011-12-29 1:25 ` [PATCH 15/21] migration: factor out parameters into MigrationParams Isaku Yamahata 2011-12-29 1:25 ` [Qemu-devel] " Isaku Yamahata 2011-12-29 1:25 ` [PATCH 16/21] umem.h: import Linux umem.h Isaku Yamahata 2011-12-29 1:25 ` [Qemu-devel] " Isaku Yamahata 2011-12-29 1:25 ` [PATCH 17/21] update-linux-headers.sh: teach umem.h to update-linux-headers.sh Isaku Yamahata 2011-12-29 1:25 ` [Qemu-devel] " Isaku Yamahata 2011-12-29 1:25 ` [PATCH 18/21] configure: add CONFIG_POSTCOPY option Isaku Yamahata 2011-12-29 1:25 ` [Qemu-devel] " Isaku Yamahata 2011-12-29 1:25 ` [PATCH 19/21] postcopy: introduce -postcopy and -postcopy-flags option Isaku Yamahata 2011-12-29 1:25 ` [Qemu-devel] " Isaku Yamahata 2011-12-29 1:25 ` Isaku Yamahata [this message] 2011-12-29 1:25 ` [Qemu-devel] [PATCH 20/21] postcopy outgoing: add -p and -n option to migrate command Isaku Yamahata 2011-12-29 1:26 ` [PATCH 21/21] postcopy: implement postcopy livemigration Isaku Yamahata 2011-12-29 1:26 ` [Qemu-devel] " Isaku Yamahata 2011-12-29 15:51 ` Orit Wasserman 2011-12-29 15:51 ` Orit Wasserman 2012-01-04 3:34 ` Isaku Yamahata 2012-01-04 3:34 ` [Qemu-devel] " Isaku Yamahata 2011-12-29 16:06 ` Avi Kivity 2011-12-29 16:06 ` [Qemu-devel] " Avi Kivity 2012-01-04 3:29 ` Isaku Yamahata 2012-01-04 3:29 ` [Qemu-devel] " Isaku Yamahata 2012-01-12 14:15 ` Avi Kivity 2012-01-12 14:15 ` [Qemu-devel] " Avi Kivity 2011-12-29 22:39 ` [PATCH 00/21][RFC] postcopy live migration Anthony Liguori 2011-12-29 22:39 ` [Qemu-devel] " Anthony Liguori 2012-01-01 9:43 ` Orit Wasserman 2012-01-01 9:43 ` [Qemu-devel] " Orit Wasserman 2012-01-01 16:27 ` Stefan Hajnoczi 2012-01-01 16:27 ` Stefan Hajnoczi 2012-01-02 9:28 ` Dor Laor 2012-01-02 9:28 ` Dor Laor 2012-01-02 17:22 ` Stefan Hajnoczi 2012-01-02 17:22 ` [Qemu-devel] " Stefan Hajnoczi 2012-01-01 9:52 ` Dor Laor 2012-01-01 9:52 ` [Qemu-devel] " Dor Laor 2012-01-04 1:30 ` Takuya Yoshikawa 2012-01-04 1:30 ` [Qemu-devel] " Takuya Yoshikawa 2012-01-04 3:48 ` Michael Roth 2012-01-04 3:48 ` [Qemu-devel] " Michael Roth 2012-01-04 3:51 ` Isaku Yamahata 2012-01-04 3:51 ` Isaku Yamahata [not found] ` <BLU0-SMTP161AC380D472854F48E33A5BC9A0@phx.gbl> 2012-01-11 2:45 ` 回??: " Isaku Yamahata 2012-01-11 2:45 ` [Qemu-devel] " Isaku Yamahata 2012-01-12 8:29 ` thfbjyddx 2012-01-12 8:29 ` [Qemu-devel] " thfbjyddx 2012-01-12 8:54 ` 回??: [PATCH 00/21][RFC] postcopy live?migration Isaku Yamahata 2012-01-12 8:54 ` [Qemu-devel] " Isaku Yamahata 2012-01-12 13:26 ` thfbjyddx 2012-01-12 13:26 ` [Qemu-devel] " thfbjyddx 2012-01-16 6:51 ` Isaku Yamahata 2012-01-16 6:51 ` [Qemu-devel] " Isaku Yamahata 2012-01-16 10:17 ` Isaku Yamahata 2012-01-16 10:17 ` [Qemu-devel] " Isaku Yamahata 2012-03-12 8:36 ` thfbjyddx 2012-03-12 8:36 ` [Qemu-devel] " thfbjyddx 2012-03-13 3:21 ` Isaku Yamahata 2012-03-13 3:21 ` [Qemu-devel] " Isaku Yamahata
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=94f5b9221f069d3ee4a5dd73bd76e2a4a8415d05.1325055140.git.yamahata@valinux.co.jp \ --to=yamahata@valinux.co.jp \ --cc=kvm@vger.kernel.org \ --cc=qemu-devel@nongnu.org \ --cc=satoshi.itoh@aist.go.jp \ --cc=t.hirofuchi@aist.go.jp \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.