[libvirt] [PATCH 2/6 v3] cgroup: Implement blkio.weight tuning API.

Eric Blake eblake at redhat.com
Tue Feb 8 17:49:06 UTC 2011


On 02/07/2011 11:56 PM, Gui Jianfeng wrote:
> Implement blkio.weight tuning API.
> 
> Acked-by: Daniel P. Berrange <berrange at redhat.com>
> Signed-off-by: Gui Jianfeng <guijianfeng at 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 at redhat.com    +1-801-349-2682
Libvirt virtualization library http://libvirt.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 619 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20110208/d692066a/attachment-0001.sig>


More information about the libvir-list mailing list