The first patch is only used to see if it is suitable for exteeding blkiotune to implement
disk I/O throttling.
As you have known, when blkiotune is issued without options, it will display current
tuning parameters; If we exceed it, without options, what should it display? both info
will? or should one new option be added to separately display them?
Signed-off-by: Zhi Yong Wu <wuzhy(a)linux.vnet.ibm.com>
---
src/conf/domain_conf.c | 18 ++++++++++++++++++
src/conf/domain_conf.h | 11 +++++++++++
2 files changed, 29 insertions(+), 0 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index cce9955..7dd350a 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -9065,6 +9065,24 @@ virDomainDiskDefFormat(virBufferPtr buf,
virBufferAsprintf(buf, " <target dev='%s'
bus='%s'/>\n",
def->dst, bus);
+ /*disk I/O throttling*/
+ if (def->blkio.blkiothrottle) {
+ virBufferAsprintf(&buf, " <blkiothrottle>\n");
+ virBufferAsprintf(&buf, " <bps>%llu</bps>\n",
+ def->blkiothrottle.bps);
+ virBufferAsprintf(&buf, " <bps_rd>%llu</bps_rd>\n",
+ def->blkiothrottle.bps_rd);
+ virBufferAsprintf(&buf, " <bps_wr>%llu</bps_wr>\n",
+ def->blkiothrottle.bps_wr);
+ virBufferAsprintf(&buf, " <iops>%llu</iops>\n",
+ def->blkiothrottle.iops);
+ virBufferAsprintf(&buf, "
<iops_rd>%llu</iops_rd>\n",
+ def->blkiothrottle.iops_rd);
+ virBufferAsprintf(&buf, "
<iops_wr>%llu</iops_wr>\n",
+ def->blkiothrottle.iops_wr);
+ virBufferAsprintf(&buf, " </blkiothrottle>\n");
+ }
+
if (def->bootIndex)
virBufferAsprintf(buf, " <boot order='%d'/>\n",
def->bootIndex);
if (def->readonly)
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index e218a30..5902377 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -258,6 +258,17 @@ struct _virDomainDiskDef {
virDomainDiskHostDefPtr hosts;
char *driverName;
char *driverType;
+
+ /*disk I/O throttling*/
+ struct {
+ unsigned long long bps;
+ unsigned long long bps_rd;
+ unsigned long long bps_wr;
+ unsigned long long iops;
+ unsigned long long iops_rd;
+ unsigned long long iops_wr;
+ } blkiothrottle;
+
char *serial;
int cachemode;
int error_policy;
--
1.7.6