From: John Ferlan Date: Sun, 2 Oct 2016 11:55:32 +0000 (-0400) Subject: virsh: Create macros to add IOTUNE values X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=49d01f9e3ff35ec775eaf3a8e490bb65d99917f3;p=libvirt.git virsh: Create macros to add IOTUNE values Rework the repetitive lines to add iotune values into easier to read macros. One to handle the SCALED values and one to handle the non scaled values. Signed-off-by: John Ferlan --- diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c index 050e7fb2a2..4135735107 100644 --- a/tools/virsh-domain.c +++ b/tools/virsh-domain.c @@ -1300,122 +1300,43 @@ cmdBlkdeviotune(vshControl *ctl, const vshCmd *cmd) if (vshCommandOptStringReq(ctl, cmd, "device", &disk) < 0) goto cleanup; - if ((rv = vshCommandOptScaledInt(ctl, cmd, "total-bytes-sec", &value, 1, ULLONG_MAX)) < 0) { - goto interror; - } else if (rv > 0) { - if (virTypedParamsAddULLong(¶ms, &nparams, &maxparams, - VIR_DOMAIN_BLOCK_IOTUNE_TOTAL_BYTES_SEC, - value) < 0) - goto save_error; - } - - if ((rv = vshCommandOptScaledInt(ctl, cmd, "read-bytes-sec", &value, 1, ULLONG_MAX)) < 0) { - goto interror; - } else if (rv > 0) { - if (virTypedParamsAddULLong(¶ms, &nparams, &maxparams, - VIR_DOMAIN_BLOCK_IOTUNE_READ_BYTES_SEC, - value) < 0) - goto save_error; - } - - if ((rv = vshCommandOptScaledInt(ctl, cmd, "write-bytes-sec", &value, 1, ULLONG_MAX)) < 0) { - goto interror; - } else if (rv > 0) { - if (virTypedParamsAddULLong(¶ms, &nparams, &maxparams, - VIR_DOMAIN_BLOCK_IOTUNE_WRITE_BYTES_SEC, - value) < 0) - goto save_error; - } - - if ((rv = vshCommandOptScaledInt(ctl, cmd, "total-bytes-sec-max", &value, 1, ULLONG_MAX)) < 0) { - goto interror; - } else if (rv > 0) { - if (virTypedParamsAddULLong(¶ms, &nparams, &maxparams, - VIR_DOMAIN_BLOCK_IOTUNE_TOTAL_BYTES_SEC_MAX, - value) < 0) - goto save_error; - } - - if ((rv = vshCommandOptScaledInt(ctl, cmd, "read-bytes-sec-max", &value, 1, ULLONG_MAX)) < 0) { - goto interror; - } else if (rv > 0) { - if (virTypedParamsAddULLong(¶ms, &nparams, &maxparams, - VIR_DOMAIN_BLOCK_IOTUNE_READ_BYTES_SEC_MAX, - value) < 0) - goto save_error; - } - - if ((rv = vshCommandOptScaledInt(ctl, cmd, "write-bytes-sec-max", &value, 1, ULLONG_MAX)) < 0) { - goto interror; - } else if (rv > 0) { - if (virTypedParamsAddULLong(¶ms, &nparams, &maxparams, - VIR_DOMAIN_BLOCK_IOTUNE_WRITE_BYTES_SEC_MAX, - value) < 0) - goto save_error; - } - - if ((rv = vshCommandOptULongLong(ctl, cmd, "total-iops-sec", &value)) < 0) { - goto interror; - } else if (rv > 0) { - if (virTypedParamsAddULLong(¶ms, &nparams, &maxparams, - VIR_DOMAIN_BLOCK_IOTUNE_TOTAL_IOPS_SEC, - value) < 0) - goto save_error; - } - - if ((rv = vshCommandOptULongLong(ctl, cmd, "read-iops-sec", &value)) < 0) { - goto interror; - } else if (rv > 0) { - if (virTypedParamsAddULLong(¶ms, &nparams, &maxparams, - VIR_DOMAIN_BLOCK_IOTUNE_READ_IOPS_SEC, - value) < 0) - goto save_error; - } - - if ((rv = vshCommandOptULongLong(ctl, cmd, "write-iops-sec", &value)) < 0) { - goto interror; - } else if (rv > 0) { - if (virTypedParamsAddULLong(¶ms, &nparams, &maxparams, - VIR_DOMAIN_BLOCK_IOTUNE_WRITE_IOPS_SEC, - value) < 0) - goto save_error; - } - - if ((rv = vshCommandOptULongLong(ctl, cmd, "write-iops-sec-max", &value)) < 0) { - goto interror; - } else if (rv > 0) { - if (virTypedParamsAddULLong(¶ms, &nparams, &maxparams, - VIR_DOMAIN_BLOCK_IOTUNE_WRITE_IOPS_SEC_MAX, - value) < 0) - goto save_error; - } - - if ((rv = vshCommandOptULongLong(ctl, cmd, "read-iops-sec-max", &value)) < 0) { - goto interror; - } else if (rv > 0) { - if (virTypedParamsAddULLong(¶ms, &nparams, &maxparams, - VIR_DOMAIN_BLOCK_IOTUNE_READ_IOPS_SEC_MAX, - value) < 0) - goto save_error; - } - - if ((rv = vshCommandOptULongLong(ctl, cmd, "total-iops-sec-max", &value)) < 0) { - goto interror; - } else if (rv > 0) { - if (virTypedParamsAddULLong(¶ms, &nparams, &maxparams, - VIR_DOMAIN_BLOCK_IOTUNE_TOTAL_IOPS_SEC_MAX, - value) < 0) - goto save_error; - } - - if ((rv = vshCommandOptULongLong(ctl, cmd, "size-iops-sec", &value)) < 0) { - goto interror; - } else if (rv > 0) { - if (virTypedParamsAddULLong(¶ms, &nparams, &maxparams, - VIR_DOMAIN_BLOCK_IOTUNE_SIZE_IOPS_SEC, - value) < 0) - goto save_error; - } +#define VSH_ADD_IOTUNE_SCALED(PARAM, CONST) \ + if ((rv = vshCommandOptScaledInt(ctl, cmd, #PARAM, &value, \ + 1, ULLONG_MAX)) < 0) { \ + goto interror; \ + } else if (rv > 0) { \ + if (virTypedParamsAddULLong(¶ms, &nparams, &maxparams, \ + VIR_DOMAIN_BLOCK_IOTUNE_##CONST, \ + value) < 0) \ + goto save_error; \ + } \ + + VSH_ADD_IOTUNE_SCALED(total-bytes-sec, TOTAL_BYTES_SEC); + VSH_ADD_IOTUNE_SCALED(read-bytes-sec, READ_BYTES_SEC); + VSH_ADD_IOTUNE_SCALED(write-bytes-sec, WRITE_BYTES_SEC); + VSH_ADD_IOTUNE_SCALED(total-bytes-sec-max, TOTAL_BYTES_SEC_MAX); + VSH_ADD_IOTUNE_SCALED(read-bytes-sec-max, READ_BYTES_SEC_MAX); + VSH_ADD_IOTUNE_SCALED(write-bytes-sec-max, WRITE_BYTES_SEC_MAX); +#undef VSH_ADD_IOTUNE_SCALED + +#define VSH_ADD_IOTUNE(PARAM, CONST) \ + if ((rv = vshCommandOptULongLong(ctl, cmd, #PARAM, &value)) < 0) { \ + goto interror; \ + } else if (rv > 0) { \ + if (virTypedParamsAddULLong(¶ms, &nparams, &maxparams, \ + VIR_DOMAIN_BLOCK_IOTUNE_##CONST, \ + value) < 0) \ + goto save_error; \ + } \ + + VSH_ADD_IOTUNE(total-iops-sec, TOTAL_IOPS_SEC); + VSH_ADD_IOTUNE(read-iops-sec, READ_IOPS_SEC); + VSH_ADD_IOTUNE(write-iops-sec, WRITE_IOPS_SEC); + VSH_ADD_IOTUNE(total-iops-sec-max, TOTAL_IOPS_SEC_MAX); + VSH_ADD_IOTUNE(read-iops-sec-max, READ_IOPS_SEC_MAX); + VSH_ADD_IOTUNE(write-iops-sec-max, WRITE_IOPS_SEC_MAX); + VSH_ADD_IOTUNE(size-iops-sec, SIZE_IOPS_SEC); +#undef VSH_ADD_IOTUNE if (nparams == 0) { if (virDomainGetBlockIoTune(dom, NULL, NULL, &nparams, flags) != 0) {