
On Wed, Sep 07, 2011 at 05:00:35PM +0800, Zhi Yong Wu wrote:
From: Zhi Yong Wu <wuzhy@linux.vnet.ibm.com> To: libvir-list@redhat.com Cc: stefanha@linux.vnet.ibm.com, agl@us.ibm.com, zwu.kernel@gmail.com, Zhi Yong Wu <wuzhy@linux.vnet.ibm.com> Subject: [PATCH v1] domain_conf: add the support for disk I/O throttle setting Date: Wed, 7 Sep 2011 17:00:35 +0800 Message-Id: <1315386035-23319-1-git-send-email-wuzhy@linux.vnet.ibm.com> X-Mailer: git-send-email 1.7.6 X-Xagent-From: wuzhy@linux.vnet.ibm.com X-Xagent-To: wuzhy@linux.vnet.ibm.com X-Xagent-Gateway: vmsdvm4.vnet.ibm.com (XAGENTU3 at VMSDVM4)
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@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