[libvirt] [PATCH 2/3] cgroup: Implement blkio.weight tuning API.
Daniel P. Berrange
berrange at redhat.com
Wed Jan 26 12:42:25 UTC 2011
On Sun, Jan 23, 2011 at 02:18:55PM +0800, Gui Jianfeng wrote:
> Implement blkio.weight tuning API.
>
> Signed-off-by: Gui Jianfeng <guijianfeng at cn.fujitsu.com>
> ---
> src/libvirt_private.syms | 2 ++
> src/util/cgroup.c | 36 ++++++++++++++++++++++++++++++++++++
> src/util/cgroup.h | 3 +++
> 3 files changed, 41 insertions(+), 0 deletions(-)
>
> diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
> index 2ce4bed..97b9851 100644
> --- a/src/libvirt_private.syms
> +++ b/src/libvirt_private.syms
> @@ -77,6 +77,8 @@ virCgroupMounted;
> virCgroupRemove;
> virCgroupSetCpuShares;
> virCgroupSetFreezerState;
> +virCgroupSetWeight;
> +virCgroupGetWeight;
> virCgroupSetMemory;
> virCgroupSetMemoryHardLimit;
> virCgroupSetMemorySoftLimit;
> diff --git a/src/util/cgroup.c b/src/util/cgroup.c
> index 309f4e9..a3d3f29 100644
> --- a/src/util/cgroup.c
> +++ b/src/util/cgroup.c
> @@ -851,6 +851,42 @@ int virCgroupForDomain(virCgroupPtr driver ATTRIBUTE_UNUSED,
> #endif
>
> /**
> + * virCgroupSetWeight:
> + *
> + * @group: The cgroup to change io weight for
> + * @weight: The Weight for this cgroup
> + *
> + * Returns: 0 on success
> + */
> +int virCgroupSetWeight(virCgroupPtr group, unsigned long weight)
> +{
> + return virCgroupSetValueU64(group,
> + VIR_CGROUP_CONTROLLER_BLKIO,
> + "blkio.weight",
> + weight);
> +}
> +
> +/**
> + * virCgroupGetWeight:
> + *
> + * @group: The cgroup to get weight for
> + * @Weight: Pointer to returned weight
> + *
> + * Returns: 0 on success
> + */
> +int virCgroupGetWeight(virCgroupPtr group, unsigned long *weight)
> +{
> + long long unsigned int __weight;
> + int ret;
> + ret = virCgroupGetValueU64(group,
> + VIR_CGROUP_CONTROLLER_BLKIO,
> + "blkio.weight", &__weight);
> + if (ret == 0)
> + *weight = (unsigned long) __weight;
> + return ret;
> +}
> +
> +/**
> * virCgroupSetMemory:
> *
> * @group: The cgroup to change memory for
> diff --git a/src/util/cgroup.h b/src/util/cgroup.h
> index 67b1299..99c1cfe 100644
> --- a/src/util/cgroup.h
> +++ b/src/util/cgroup.h
> @@ -41,6 +41,9 @@ int virCgroupForDomain(virCgroupPtr driver,
>
> int virCgroupAddTask(virCgroupPtr group, pid_t pid);
>
> +int virCgroupSetWeight(virCgroupPtr group, unsigned long weight);
> +int virCgroupGetWeight(virCgroupPtr group, unsigned long *weight);
> +
> int virCgroupSetMemory(virCgroupPtr group, unsigned long long kb);
> int virCgroupGetMemoryUsage(virCgroupPtr group, unsigned long *kb);
ACK
Daniel
More information about the libvir-list
mailing list