At 06/20/2011 02:22 PM, Daniel Veillard Write: > On Tue, Jun 07, 2011 at 02:03:07PM +0800, Hu Tao wrote: >> Add --config, --live and --current for command blkiotune >> --- >> tools/virsh.c | 26 +++++++++++++++++++++++--- >> tools/virsh.pod | 7 +++++++ >> 2 files changed, 30 insertions(+), 3 deletions(-) >> >> diff --git a/tools/virsh.c b/tools/virsh.c >> index d98be1c..d458b92 100644 >> --- a/tools/virsh.c >> +++ b/tools/virsh.c >> @@ -3343,6 +3343,9 @@ static const vshCmdOptDef opts_blkiotune[] = { >> {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, N_("domain name, id or uuid")}, >> {"weight", VSH_OT_INT, VSH_OFLAG_NONE, >> N_("IO Weight in range [100, 1000]")}, >> + {"config", VSH_OT_BOOL, 0, N_("affect next boot")}, >> + {"live", VSH_OT_BOOL, 0, N_("affect running domain")}, >> + {"current", VSH_OT_BOOL, 0, N_("affect current domain")}, >> {NULL, 0, 0, NULL} >> }; >> >> @@ -3355,6 +3358,23 @@ cmdBlkiotune(vshControl * ctl, const vshCmd * cmd) >> unsigned int i = 0; >> virTypedParameterPtr params = NULL, temp = NULL; >> bool ret = false; >> + unsigned int flags = 0; >> + int current = vshCommandOptBool(cmd, "current"); >> + int config = vshCommandOptBool(cmd, "config"); >> + int live = vshCommandOptBool(cmd, "live"); >> + >> + if (current) { >> + if (live || config) { >> + vshError(ctl, "%s", _("--current must be specified exclusively")); >> + return false; >> + } >> + flags = VIR_DOMAIN_AFFECT_CURRENT; >> + } else { >> + if (config) >> + flags |= VIR_DOMAIN_AFFECT_CONFIG; >> + if (live) >> + flags |= VIR_DOMAIN_AFFECT_LIVE; >> + } >> >> if (!vshConnectionUsability(ctl, ctl->conn)) >> return false; >> @@ -3379,7 +3399,7 @@ cmdBlkiotune(vshControl * ctl, const vshCmd * cmd) >> >> if (nparams == 0) { >> /* get the number of blkio parameters */ >> - if (virDomainGetBlkioParameters(dom, NULL, &nparams, 0) != 0) { >> + if (virDomainGetBlkioParameters(dom, NULL, &nparams, flags) != 0) { >> vshError(ctl, "%s", >> _("Unable to get number of blkio parameters")); >> goto cleanup; >> @@ -3393,7 +3413,7 @@ cmdBlkiotune(vshControl * ctl, const vshCmd * cmd) >> >> /* now go get all the blkio parameters */ >> params = vshCalloc(ctl, nparams, sizeof(*params)); >> - if (virDomainGetBlkioParameters(dom, params, &nparams, 0) != 0) { >> + if (virDomainGetBlkioParameters(dom, params, &nparams, flags) != 0) { >> vshError(ctl, "%s", _("Unable to get blkio parameters")); >> goto cleanup; >> } >> @@ -3445,7 +3465,7 @@ cmdBlkiotune(vshControl * ctl, const vshCmd * cmd) >> weight = 0; >> } >> } >> - if (virDomainSetBlkioParameters(dom, params, nparams, 0) != 0) >> + if (virDomainSetBlkioParameters(dom, params, nparams, flags) != 0) >> vshError(ctl, "%s", _("Unable to change blkio parameters")); >> else >> ret = true; >> diff --git a/tools/virsh.pod b/tools/virsh.pod >> index 7ed3003..9c53203 100644 >> --- a/tools/virsh.pod >> +++ b/tools/virsh.pod >> @@ -697,6 +697,13 @@ value are kilobytes (i.e. blocks of 1024 bytes). >> Display or set the blkio parameters. QEMU/KVM supports I<--weight>. >> I<--weight> is in range [100, 1000]. >> >> +If I<--live> is specified, affect a running guest. >> +If I<--config> is specified, affect the next boot of a persistent guest. >> +If I<--current> is specified, affect the current guest state. >> +Both I<--live> and I<--current> flags may be given, but I<--current> is >> +exclusive. If no flag is specified, behavior is different depending >> +on hypervisor. >> + >> =item B<setvcpus> I<domain-id> I<count> optional I<--maximum> I<--config> >> I<--live> > > ACK, > > Wen could you push this ;-) ? I have pushed this series patch. Thanks. Wen Congyang > > Daniel > -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list