mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-18 10:35:20 +00:00
virsh: add parameters --live, --config and --current to cmd schedinfo
This enables user to modify cpu.shares even when domain is inactive.
This commit is contained in:
parent
bb9f1bbf4a
commit
42af244347
@ -1596,6 +1596,9 @@ static const vshCmdOptDef opts_schedinfo[] = {
|
|||||||
{"set", VSH_OT_STRING, VSH_OFLAG_NONE, N_("parameter=value")},
|
{"set", VSH_OT_STRING, VSH_OFLAG_NONE, N_("parameter=value")},
|
||||||
{"weight", VSH_OT_INT, VSH_OFLAG_NONE, N_("weight for XEN_CREDIT")},
|
{"weight", VSH_OT_INT, VSH_OFLAG_NONE, N_("weight for XEN_CREDIT")},
|
||||||
{"cap", VSH_OT_INT, VSH_OFLAG_NONE, N_("cap for XEN_CREDIT")},
|
{"cap", VSH_OT_INT, VSH_OFLAG_NONE, N_("cap for XEN_CREDIT")},
|
||||||
|
{"current", VSH_OT_BOOL, 0, N_("get/set current scheduler info")},
|
||||||
|
{"config", VSH_OT_BOOL, 0, N_("get/set value to be used on next boot")},
|
||||||
|
{"live", VSH_OT_BOOL, 0, N_("get/set value from running domain")},
|
||||||
{NULL, 0, 0, NULL}
|
{NULL, 0, 0, NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -1703,6 +1706,23 @@ cmdSchedinfo(vshControl *ctl, const vshCmd *cmd)
|
|||||||
int update = 0;
|
int update = 0;
|
||||||
int i, ret;
|
int i, ret;
|
||||||
bool ret_val = false;
|
bool ret_val = 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_SCHEDPARAM_CURRENT;
|
||||||
|
} else {
|
||||||
|
if (config)
|
||||||
|
flags |= VIR_DOMAIN_SCHEDPARAM_CONFIG;
|
||||||
|
if (live)
|
||||||
|
flags |= VIR_DOMAIN_SCHEDPARAM_LIVE;
|
||||||
|
}
|
||||||
|
|
||||||
if (!vshConnectionUsability(ctl, ctl->conn))
|
if (!vshConnectionUsability(ctl, ctl->conn))
|
||||||
return false;
|
return false;
|
||||||
@ -1712,7 +1732,7 @@ cmdSchedinfo(vshControl *ctl, const vshCmd *cmd)
|
|||||||
|
|
||||||
/* Print SchedulerType */
|
/* Print SchedulerType */
|
||||||
schedulertype = virDomainGetSchedulerType(dom, &nparams);
|
schedulertype = virDomainGetSchedulerType(dom, &nparams);
|
||||||
if (schedulertype!= NULL){
|
if (schedulertype != NULL){
|
||||||
vshPrint(ctl, "%-15s: %s\n", _("Scheduler"),
|
vshPrint(ctl, "%-15s: %s\n", _("Scheduler"),
|
||||||
schedulertype);
|
schedulertype);
|
||||||
VIR_FREE(schedulertype);
|
VIR_FREE(schedulertype);
|
||||||
@ -1741,7 +1761,11 @@ cmdSchedinfo(vshControl *ctl, const vshCmd *cmd)
|
|||||||
|
|
||||||
/* Update parameters & refresh data */
|
/* Update parameters & refresh data */
|
||||||
if (update) {
|
if (update) {
|
||||||
ret = virDomainSetSchedulerParameters(dom, params, nparams);
|
if (flags || current)
|
||||||
|
ret = virDomainSetSchedulerParametersFlags(dom, params,
|
||||||
|
nparams, flags);
|
||||||
|
else
|
||||||
|
ret = virDomainSetSchedulerParameters(dom, params, nparams);
|
||||||
if (ret == -1)
|
if (ret == -1)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
|
@ -570,11 +570,14 @@ This is roughly equivalent to doing a hibernate on a running computer,
|
|||||||
with all the same limitations. Open network connections may be
|
with all the same limitations. Open network connections may be
|
||||||
severed upon restore, as TCP timeouts may have expired.
|
severed upon restore, as TCP timeouts may have expired.
|
||||||
|
|
||||||
=item B<schedinfo> optional I<--set> B<parameter=value> I<domain-id>
|
=item B<schedinfo> optional I<--set> B<parameter=value> I<domain-id> I<--config>
|
||||||
|
I<--live> I<--current>
|
||||||
|
|
||||||
=item B<schedinfo> optional I<--weight> B<number> optional I<--cap> B<number> I<domain-id>
|
=item B<schedinfo> optional I<--weight> B<number> optional I<--cap> B<number>
|
||||||
|
I<domain-id>
|
||||||
|
|
||||||
Allows you to show (and set) the domain scheduler parameters. The parameters available for each hypervisor are:
|
Allows you to show (and set) the domain scheduler parameters. The parameters
|
||||||
|
available for each hypervisor are:
|
||||||
|
|
||||||
LXC, QEMU/KVM (posix scheduler): cpu_shares
|
LXC, QEMU/KVM (posix scheduler): cpu_shares
|
||||||
|
|
||||||
@ -582,6 +585,10 @@ Xen (credit scheduler): weight, cap
|
|||||||
|
|
||||||
ESX (allocation scheduler): reservation, limit, shares
|
ESX (allocation scheduler): reservation, limit, shares
|
||||||
|
|
||||||
|
If I<--live> is specified, set scheduler information of 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.
|
||||||
|
|
||||||
B<Note>: The cpu_shares parameter has a valid value range of 0-262144; Negative
|
B<Note>: The cpu_shares parameter has a valid value range of 0-262144; Negative
|
||||||
values are wrapped to positive, and larger values are capped at the maximum.
|
values are wrapped to positive, and larger values are capped at the maximum.
|
||||||
Therefore, -1 is a useful shorthand for 262144.
|
Therefore, -1 is a useful shorthand for 262144.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user