On 02/07/2011 11:56 PM, Gui Jianfeng wrote:
Implement blkio.weight tuning API.
Acked-by: Daniel P. Berrange <berrange(a)redhat.com>
Signed-off-by: Gui Jianfeng <guijianfeng(a)cn.fujitsu.com>
---
src/libvirt_private.syms | 2 ++
src/util/cgroup.c | 39 +++++++++++++++++++++++++++++++++++++++
src/util/cgroup.h | 3 +++
3 files changed, 44 insertions(+), 0 deletions(-)
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 88e270c..490901e 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -77,6 +77,8 @@ virCgroupMounted;
virCgroupRemove;
virCgroupSetCpuShares;
virCgroupSetFreezerState;
+virCgroupSetBlkioWeight;
+virCgroupGetBlkioWeight;
Not in sorted order, but that's easy enough to fix.
+int virCgroupGetBlkioWeight(virCgroupPtr group, unsigned long
*weight)
+{
+ long long unsigned int __weight;
Use of double underscore risks collision with system headers, not to
mention it looks ugly. I'd rather s/__weight/tmp/.
+ int ret;
+ ret = virCgroupGetValueU64(group,
+ VIR_CGROUP_CONTROLLER_BLKIO,
+ "blkio.weight", &__weight);
+ if (ret == 0)
+ *weight = (unsigned long) __weight;
The cast is not strictly necessary.
ACK with this squashed in:
diff --git i/src/libvirt_private.syms w/src/libvirt_private.syms
index 490901e..1bbd44e 100644
--- i/src/libvirt_private.syms
+++ w/src/libvirt_private.syms
@@ -66,6 +66,7 @@ virCgroupDenyDevicePath;
virCgroupForDomain;
virCgroupForDriver;
virCgroupFree;
+virCgroupGetBlkioWeight;
virCgroupGetCpuShares;
virCgroupGetCpuacctUsage;
virCgroupGetFreezerState;
@@ -75,10 +76,9 @@ virCgroupGetMemoryUsage;
virCgroupGetSwapHardLimit;
virCgroupMounted;
virCgroupRemove;
+virCgroupSetBlkioWeight;
virCgroupSetCpuShares;
virCgroupSetFreezerState;
-virCgroupSetBlkioWeight;
-virCgroupGetBlkioWeight;
virCgroupSetMemory;
virCgroupSetMemoryHardLimit;
virCgroupSetMemorySoftLimit;
diff --git i/src/util/cgroup.c w/src/util/cgroup.c
index bb3f334..9cdfc6e 100644
--- i/src/util/cgroup.c
+++ w/src/util/cgroup.c
@@ -1,7 +1,7 @@
/*
* cgroup.c: Tools for managing cgroups
*
- * Copyright (C) 2010 Red Hat, Inc.
+ * Copyright (C) 2010-2011 Red Hat, Inc.
* Copyright IBM Corp. 2008
*
* See COPYING.LIB for the License of this software
@@ -879,13 +879,13 @@ int virCgroupSetBlkioWeight(virCgroupPtr group,
unsigned long weight)
*/
int virCgroupGetBlkioWeight(virCgroupPtr group, unsigned long *weight)
{
- long long unsigned int __weight;
+ long long unsigned int tmp;
int ret;
ret = virCgroupGetValueU64(group,
VIR_CGROUP_CONTROLLER_BLKIO,
- "blkio.weight", &__weight);
+ "blkio.weight", &tmp);
if (ret == 0)
- *weight = (unsigned long) __weight;
+ *weight = tmp;
return ret;
}
--
Eric Blake eblake(a)redhat.com +1-801-349-2682
Libvirt virtualization library
http://libvirt.org