On Fri, Mar 19, 2010 at 04:51:11PM +0100, Jiri Denemark wrote: > > This API call sets maximum tolerable time for which the domain is allowed to be > > paused at the end of live migration. It's supposed to be called while the > > domain is being live-migrated as a reaction to migration progress. > > Changes in version 3: > - use milliseconds instead of nanoseconds both internally and in API > - correct suffix for qemu monitor commands > > > Changes in version 2: > > - API renamed to reflect it's maximum downtime > > - new flags parameter for the future > > - qemu implementation was fixed so that the call is allowed iff the domain is > > being migrated > > - --downtime parameter of virsh migrate command was removed in favor of new > > virsh migrate-setmaxdowntime which can be run independently > > - virsh accepts downtime as nanoseconds instead of floating-point seconds > > (shells don't deal with floating-point numbers well) > > Version 3 diff follows: > > src/libvirt.c | 2 +- > src/qemu/qemu_driver.c | 8 ++++---- > src/qemu/qemu_monitor_json.c | 2 +- > src/qemu/qemu_monitor_text.c | 2 +- > tools/virsh.c | 2 +- > tools/virsh.pod | 2 +- > 6 files changed, 9 insertions(+), 9 deletions(-) > > diff --git a/src/libvirt.c b/src/libvirt.c > index 07837a3..178dbc1 100644 > --- a/src/libvirt.c > +++ b/src/libvirt.c > @@ -11270,7 +11270,7 @@ error: > /** > * virDomainMigrateSetMaxDowntime: > * @domain: a domain object > - * @downtime: maximum tolerable downtime for live migration, in nanoseconds > + * @downtime: maximum tolerable downtime for live migration, in milliseconds > * @flags: fine-tuning flags, currently unused, use 0 > * > * Sets maximum tolerable time for which the domain is allowed to be paused > diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c > index 322fb3f..2a7b5c0 100644 > --- a/src/qemu/qemu_driver.c > +++ b/src/qemu/qemu_driver.c > @@ -4074,13 +4074,13 @@ qemuDomainWaitForMigrationComplete(struct qemud_driver *driver, virDomainObjPtr > if (qemuDomainMigrateOffline(driver, vm) < 0) > VIR_WARN0("Unable to pause domain"); > } else if (priv->jobSignals & QEMU_JOB_SIGNAL_MIGRATE_DOWNTIME) { > - unsigned long long ns = priv->jobSignalsData.migrateDowntime; > + unsigned long long ms = priv->jobSignalsData.migrateDowntime; > > priv->jobSignals ^= QEMU_JOB_SIGNAL_MIGRATE_DOWNTIME; > priv->jobSignalsData.migrateDowntime = 0; > - VIR_DEBUG("Setting migration downtime to %lluns", ns); > + VIR_DEBUG("Setting migration downtime to %llums", ms); > qemuDomainObjEnterMonitorWithDriver(driver, vm); > - rc = qemuMonitorSetMigrationDowntime(priv->mon, ns); > + rc = qemuMonitorSetMigrationDowntime(priv->mon, ms); > qemuDomainObjExitMonitorWithDriver(driver, vm); > if (rc < 0) > VIR_WARN0("Unable to set migration downtime"); > @@ -9574,7 +9574,7 @@ qemuDomainMigrateSetMaxDowntime(virDomainPtr dom, > goto cleanup; > } > > - VIR_DEBUG("Requesting migration downtime change to %lluns", downtime); > + VIR_DEBUG("Requesting migration downtime change to %llums", downtime); > priv->jobSignals |= QEMU_JOB_SIGNAL_MIGRATE_DOWNTIME; > priv->jobSignalsData.migrateDowntime = downtime; > ret = 0; > diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c > index b259452..4ae8093 100644 > --- a/src/qemu/qemu_monitor_json.c > +++ b/src/qemu/qemu_monitor_json.c > @@ -1095,7 +1095,7 @@ int qemuMonitorJSONSetMigrationDowntime(qemuMonitorPtr mon, > char *downtimestr; > virJSONValuePtr cmd; > virJSONValuePtr reply = NULL; > - if (virAsprintf(&downtimestr, "%llun", downtime) < 0) { > + if (virAsprintf(&downtimestr, "%llums", downtime) < 0) { > virReportOOMError(); > return -1; > } > diff --git a/src/qemu/qemu_monitor_text.c b/src/qemu/qemu_monitor_text.c > index ca2fc97..1596e59 100644 > --- a/src/qemu/qemu_monitor_text.c > +++ b/src/qemu/qemu_monitor_text.c > @@ -1006,7 +1006,7 @@ int qemuMonitorTextSetMigrationDowntime(qemuMonitorPtr mon, > char *info = NULL; > int ret = -1; > > - if (virAsprintf(&cmd, "migrate_set_downtime %llun", downtime) < 0) { > + if (virAsprintf(&cmd, "migrate_set_downtime %llums", downtime) < 0) { > virReportOOMError(); > goto cleanup; > } > diff --git a/tools/virsh.c b/tools/virsh.c > index 3dd9314..cfcc86e 100644 > --- a/tools/virsh.c > +++ b/tools/virsh.c > @@ -2840,7 +2840,7 @@ static const vshCmdInfo info_migrate_setmaxdowntime[] = { > > static const vshCmdOptDef opts_migrate_setmaxdowntime[] = { > {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, N_("domain name, id or uuid")}, > - {"downtime", VSH_OT_DATA, VSH_OFLAG_REQ, N_("maximum tolerable downtime (in nanoseconds) for migration")}, > + {"downtime", VSH_OT_DATA, VSH_OFLAG_REQ, N_("maximum tolerable downtime (in milliseconds) for migration")}, > {NULL, 0, 0, NULL} > }; > > diff --git a/tools/virsh.pod b/tools/virsh.pod > index 1c7cfce..a6298dd 100644 > --- a/tools/virsh.pod > +++ b/tools/virsh.pod > @@ -337,7 +337,7 @@ migration URI, which usually can be omitted. > =item B<migrate-setmaxdowntime> I<domain-id> I<downtime> > > Set maximum tolerable downtime for a domain which is being live-migrated to > -another host. The I<downtime> is a number of nanoseconds the guest is allowed > +another host. The I<downtime> is a number of milliseconds the guest is allowed > to be down at the end of live migration. > > =item B<reboot> I<domain-id> ACK, looks fine to me now ! Daniel -- Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ daniel@xxxxxxxxxxxx | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/ -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list