summaryrefslogtreecommitdiffstats
path: root/include/net/tcp_memcontrol.h
diff options
context:
space:
mode:
authorGlauber Costa <glommer@parallels.com>2011-12-11 21:47:06 +0000
committerDavid S. Miller <davem@davemloft.net>2011-12-12 19:04:11 -0500
commit3aaabe2342c36bf48567b88fa78b819eee14bb5e (patch)
tree1364c84c53ba6382f9a9df9d6f42a3bc37427d05 /include/net/tcp_memcontrol.h
parent3dc43e3e4d0b52197d3205214fe8f162f9e0c334 (diff)
downloadop-kernel-dev-3aaabe2342c36bf48567b88fa78b819eee14bb5e.zip
op-kernel-dev-3aaabe2342c36bf48567b88fa78b819eee14bb5e.tar.gz
tcp buffer limitation: per-cgroup limit
This patch uses the "tcp.limit_in_bytes" field of the kmem_cgroup to effectively control the amount of kernel memory pinned by a cgroup. This value is ignored in the root cgroup, and in all others, caps the value specified by the admin in the net namespaces' view of tcp_sysctl_mem. If namespaces are being used, the admin is allowed to set a value bigger than cgroup's maximum, the same way it is allowed to set pretty much unlimited values in a real box. Signed-off-by: Glauber Costa <glommer@parallels.com> Reviewed-by: Hiroyouki Kamezawa <kamezawa.hiroyu@jp.fujitsu.com> CC: David S. Miller <davem@davemloft.net> CC: Eric W. Biederman <ebiederm@xmission.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/tcp_memcontrol.h')
-rw-r--r--include/net/tcp_memcontrol.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/net/tcp_memcontrol.h b/include/net/tcp_memcontrol.h
index 5f5e158..3512082 100644
--- a/include/net/tcp_memcontrol.h
+++ b/include/net/tcp_memcontrol.h
@@ -14,4 +14,6 @@ struct tcp_memcontrol {
struct cg_proto *tcp_proto_cgroup(struct mem_cgroup *memcg);
int tcp_init_cgroup(struct cgroup *cgrp, struct cgroup_subsys *ss);
void tcp_destroy_cgroup(struct cgroup *cgrp, struct cgroup_subsys *ss);
+unsigned long long tcp_max_memory(const struct mem_cgroup *memcg);
+void tcp_prot_mem(struct mem_cgroup *memcg, long val, int idx);
#endif /* _TCP_MEMCG_H */
OpenPOWER on IntegriCloud