提交 c3658ab5 编写于 作者: G Gui Jianfeng 提交者: Eric Blake

cgroup: Implement blkio.weight tuning API.

Implement blkio.weight tuning API.
Acked-by: NDaniel P. Berrange <berrange@redhat.com>
Signed-off-by: NGui Jianfeng <guijianfeng@cn.fujitsu.com>
上级 b58241a6
...@@ -66,6 +66,7 @@ virCgroupDenyDevicePath; ...@@ -66,6 +66,7 @@ virCgroupDenyDevicePath;
virCgroupForDomain; virCgroupForDomain;
virCgroupForDriver; virCgroupForDriver;
virCgroupFree; virCgroupFree;
virCgroupGetBlkioWeight;
virCgroupGetCpuShares; virCgroupGetCpuShares;
virCgroupGetCpuacctUsage; virCgroupGetCpuacctUsage;
virCgroupGetFreezerState; virCgroupGetFreezerState;
...@@ -75,6 +76,7 @@ virCgroupGetMemoryUsage; ...@@ -75,6 +76,7 @@ virCgroupGetMemoryUsage;
virCgroupGetSwapHardLimit; virCgroupGetSwapHardLimit;
virCgroupMounted; virCgroupMounted;
virCgroupRemove; virCgroupRemove;
virCgroupSetBlkioWeight;
virCgroupSetCpuShares; virCgroupSetCpuShares;
virCgroupSetFreezerState; virCgroupSetFreezerState;
virCgroupSetMemory; virCgroupSetMemory;
......
/* /*
* cgroup.c: Tools for managing cgroups * cgroup.c: Tools for managing cgroups
* *
* Copyright (C) 2010 Red Hat, Inc. * Copyright (C) 2010-2011 Red Hat, Inc.
* Copyright IBM Corp. 2008 * Copyright IBM Corp. 2008
* *
* See COPYING.LIB for the License of this software * See COPYING.LIB for the License of this software
...@@ -850,6 +850,45 @@ int virCgroupForDomain(virCgroupPtr driver ATTRIBUTE_UNUSED, ...@@ -850,6 +850,45 @@ int virCgroupForDomain(virCgroupPtr driver ATTRIBUTE_UNUSED,
} }
#endif #endif
/**
* virCgroupSetBlkioWeight:
*
* @group: The cgroup to change io weight for
* @weight: The Weight for this cgroup
*
* Returns: 0 on success
*/
int virCgroupSetBlkioWeight(virCgroupPtr group, unsigned int weight)
{
if (weight > 1000 || weight < 100)
return -EINVAL;
return virCgroupSetValueU64(group,
VIR_CGROUP_CONTROLLER_BLKIO,
"blkio.weight",
weight);
}
/**
* virCgroupGetBlkioWeight:
*
* @group: The cgroup to get weight for
* @Weight: Pointer to returned weight
*
* Returns: 0 on success
*/
int virCgroupGetBlkioWeight(virCgroupPtr group, unsigned int *weight)
{
unsigned long long tmp;
int ret;
ret = virCgroupGetValueU64(group,
VIR_CGROUP_CONTROLLER_BLKIO,
"blkio.weight", &tmp);
if (ret == 0)
*weight = tmp;
return ret;
}
/** /**
* virCgroupSetMemory: * virCgroupSetMemory:
* *
......
/* /*
* cgroup.h: Interface to tools for managing cgroups * cgroup.h: Interface to tools for managing cgroups
* *
* Copyright (C) 2011 Red Hat, Inc.
* Copyright IBM Corp. 2008 * Copyright IBM Corp. 2008
* *
* See COPYING.LIB for the License of this software * See COPYING.LIB for the License of this software
...@@ -41,6 +42,9 @@ int virCgroupForDomain(virCgroupPtr driver, ...@@ -41,6 +42,9 @@ int virCgroupForDomain(virCgroupPtr driver,
int virCgroupAddTask(virCgroupPtr group, pid_t pid); int virCgroupAddTask(virCgroupPtr group, pid_t pid);
int virCgroupSetBlkioWeight(virCgroupPtr group, unsigned int weight);
int virCgroupGetBlkioWeight(virCgroupPtr group, unsigned int *weight);
int virCgroupSetMemory(virCgroupPtr group, unsigned long long kb); int virCgroupSetMemory(virCgroupPtr group, unsigned long long kb);
int virCgroupGetMemoryUsage(virCgroupPtr group, unsigned long *kb); int virCgroupGetMemoryUsage(virCgroupPtr group, unsigned long *kb);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册