}
+/*
+ * "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
*/
.info = info_setvcpu,
.flags = 0
},
+ {.name = "domblkthreshold",
+ .handler = cmdDomblkthreshold,
+ .opts = opts_domblkthreshold,
+ .info = info_domblkthreshold,
+ .flags = 0
+ },
{.name = NULL}
};
used without I<--bytes> will be rounded down to MiB/s. Note that the
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>
Resize a block device of domain while the domain is running, I<path>