diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c index ccda71d7e004ad664eda14870b7d5e4371db68f7..8984c2f3b4c9fda00755c20cb12e05a61bae1f21 100644 --- a/tools/virsh-domain.c +++ b/tools/virsh-domain.c @@ -10587,6 +10587,10 @@ static const vshCmdOptDef opts_migrate[] = { .type = VSH_OT_INT, .help = N_("number of connections for parallel migration") }, + {.name = "precopy-bandwidth", + .type = VSH_OT_INT, + .help = N_("pre-copy migration bandwidth limit in MiB/s") + }, {.name = NULL} }; @@ -10801,6 +10805,15 @@ doMigrate(void *opaque) goto save_error; } + if ((rv = vshCommandOptULongLong(ctl, cmd, "precopy-bandwidth", &ullOpt)) < 0) { + goto out; + } else if (rv > 0) { + if (virTypedParamsAddULLong(¶ms, &nparams, &maxparams, + VIR_MIGRATE_PARAM_BANDWIDTH, + ullOpt) < 0) + goto save_error; + } + if (vshCommandOptBool(cmd, "live")) flags |= VIR_MIGRATE_LIVE; if (vshCommandOptBool(cmd, "p2p")) diff --git a/tools/virsh.pod b/tools/virsh.pod index af739bec24d73ec6a560ac922722302ce39bd922..aa0eb16f1aece9a703d54d63fbe5e3e8ccf22e5d 100644 --- a/tools/virsh.pod +++ b/tools/virsh.pod @@ -1927,6 +1927,7 @@ I I [I] [I] [I] [I] [I<--persistent-xml> B] [I<--tls>] [I<--postcopy-bandwidth> B] [I<--parallel> [I<--parallel-connections> B]] +[I<--precopy-bandwidth> B] Migrate domain to another host. Add I<--live> for live migration; <--p2p> for peer-2-peer migration; I<--direct> for direct migration; or I<--tunnelled> @@ -1958,7 +1959,8 @@ B command sent from another virsh instance or use I<--postcopy-after-precopy> along with I<--postcopy> to let libvirt automatically switch to post-copy after the first pass of pre-copy is finished. The maximum bandwidth consumed during the post-copy phase may be limited using -I<--postcopy-bandwidth>. +I<--postcopy-bandwidth>. The maximum bandwidth consumed during the pre-copy phase +may be limited using I<--precopy-bandwidth>. I<--auto-converge> forces convergence during live migration. The initial guest CPU throttling rate can be set with I. If the