mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-22 04:25:18 +00:00
virsh: Implement 'domblkthreshold' command to call virDomainSetBlockThreshold
Add a simple wrapper which will allow to set the threshold for delivering the event.
This commit is contained in:
parent
bb09798fbe
commit
97148962b5
@ -7096,6 +7096,64 @@ cmdSetvcpu(vshControl *ctl, const vshCmd *cmd)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* "domblkthreshold" command
|
||||||
|
*/
|
||||||
|
static const vshCmdInfo info_domblkthreshold[] = {
|
||||||
|
{.name = "help",
|
||||||
|
.data = N_("set the threshold for block-threshold event for a given block "
|
||||||
|
"device or it's backing chain element")
|
||||||
|
},
|
||||||
|
{.name = "desc",
|
||||||
|
.data = N_("set threshold for block-threshold event for a block device")
|
||||||
|
},
|
||||||
|
{.name = NULL}
|
||||||
|
};
|
||||||
|
|
||||||
|
static const vshCmdOptDef opts_domblkthreshold[] = {
|
||||||
|
VIRSH_COMMON_OPT_DOMAIN_FULL,
|
||||||
|
{.name = "dev",
|
||||||
|
.type = VSH_OT_DATA,
|
||||||
|
.flags = VSH_OFLAG_REQ,
|
||||||
|
.help = N_("device to set threshold for")
|
||||||
|
},
|
||||||
|
{.name = "threshold",
|
||||||
|
.type = VSH_OT_INT,
|
||||||
|
.flags = VSH_OFLAG_REQ,
|
||||||
|
.help = N_("threshold as a scaled number (by default bytes)")
|
||||||
|
},
|
||||||
|
{.name = NULL}
|
||||||
|
};
|
||||||
|
|
||||||
|
static bool
|
||||||
|
cmdDomblkthreshold(vshControl *ctl, const vshCmd *cmd)
|
||||||
|
{
|
||||||
|
unsigned long long threshold;
|
||||||
|
const char *dev = NULL;
|
||||||
|
virDomainPtr dom;
|
||||||
|
bool ret = false;
|
||||||
|
|
||||||
|
if (vshCommandOptStringReq(ctl, cmd, "dev", &dev))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (vshCommandOptScaledInt(ctl, cmd, "threshold",
|
||||||
|
&threshold, 1, ULLONG_MAX) < 0)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (!(dom = virshCommandOptDomain(ctl, cmd, NULL)))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (virDomainSetBlockThreshold(dom, dev, threshold, 0) < 0)
|
||||||
|
goto cleanup;
|
||||||
|
|
||||||
|
ret = true;
|
||||||
|
|
||||||
|
cleanup:
|
||||||
|
virDomainFree(dom);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* "iothreadinfo" command
|
* "iothreadinfo" command
|
||||||
*/
|
*/
|
||||||
@ -14067,5 +14125,11 @@ const vshCmdDef domManagementCmds[] = {
|
|||||||
.info = info_setvcpu,
|
.info = info_setvcpu,
|
||||||
.flags = 0
|
.flags = 0
|
||||||
},
|
},
|
||||||
|
{.name = "domblkthreshold",
|
||||||
|
.handler = cmdDomblkthreshold,
|
||||||
|
.opts = opts_domblkthreshold,
|
||||||
|
.info = info_domblkthreshold,
|
||||||
|
.flags = 0
|
||||||
|
},
|
||||||
{.name = NULL}
|
{.name = NULL}
|
||||||
};
|
};
|
||||||
|
@ -1274,6 +1274,14 @@ I<--bytes> with a scaled value allows to use finer granularity. A scaled value
|
|||||||
used without I<--bytes> will be rounded down to MiB/s. Note that the
|
used without I<--bytes> will be rounded down to MiB/s. Note that the
|
||||||
I<--bytes> may be unsupported by the hypervisor.
|
I<--bytes> may be unsupported by the hypervisor.
|
||||||
|
|
||||||
|
|
||||||
|
=item B<domblkthreshold> I<domain> I<dev> I<threshold>
|
||||||
|
|
||||||
|
Set the threshold value for delivering the block-threshold event. I<dev>
|
||||||
|
specifies the disk device target or backing chain element of given device using
|
||||||
|
the 'target[1]' syntax. I<threshold> is a scaled value of the offset. If the
|
||||||
|
block device should write beyond that offset the event will be delivered.
|
||||||
|
|
||||||
=item B<blockresize> I<domain> I<path> I<size>
|
=item B<blockresize> I<domain> I<path> I<size>
|
||||||
|
|
||||||
Resize a block device of domain while the domain is running, I<path>
|
Resize a block device of domain while the domain is running, I<path>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user