tcp_memcontrol.h revision d1a4c0b37c296e600ffe08edb0db2dc1b8f550d7
1d1a4c0b37c296e600ffe08edb0db2dc1b8f550d7Glauber Costa#ifndef _TCP_MEMCG_H
2d1a4c0b37c296e600ffe08edb0db2dc1b8f550d7Glauber Costa#define _TCP_MEMCG_H
3d1a4c0b37c296e600ffe08edb0db2dc1b8f550d7Glauber Costa
4d1a4c0b37c296e600ffe08edb0db2dc1b8f550d7Glauber Costastruct tcp_memcontrol {
5d1a4c0b37c296e600ffe08edb0db2dc1b8f550d7Glauber Costa	struct cg_proto cg_proto;
6d1a4c0b37c296e600ffe08edb0db2dc1b8f550d7Glauber Costa	/* per-cgroup tcp memory pressure knobs */
7d1a4c0b37c296e600ffe08edb0db2dc1b8f550d7Glauber Costa	struct res_counter tcp_memory_allocated;
8d1a4c0b37c296e600ffe08edb0db2dc1b8f550d7Glauber Costa	struct percpu_counter tcp_sockets_allocated;
9d1a4c0b37c296e600ffe08edb0db2dc1b8f550d7Glauber Costa	/* those two are read-mostly, leave them at the end */
10d1a4c0b37c296e600ffe08edb0db2dc1b8f550d7Glauber Costa	long tcp_prot_mem[3];
11d1a4c0b37c296e600ffe08edb0db2dc1b8f550d7Glauber Costa	int tcp_memory_pressure;
12d1a4c0b37c296e600ffe08edb0db2dc1b8f550d7Glauber Costa};
13d1a4c0b37c296e600ffe08edb0db2dc1b8f550d7Glauber Costa
14d1a4c0b37c296e600ffe08edb0db2dc1b8f550d7Glauber Costastruct cg_proto *tcp_proto_cgroup(struct mem_cgroup *memcg);
15d1a4c0b37c296e600ffe08edb0db2dc1b8f550d7Glauber Costaint tcp_init_cgroup(struct cgroup *cgrp, struct cgroup_subsys *ss);
16d1a4c0b37c296e600ffe08edb0db2dc1b8f550d7Glauber Costavoid tcp_destroy_cgroup(struct cgroup *cgrp, struct cgroup_subsys *ss);
17d1a4c0b37c296e600ffe08edb0db2dc1b8f550d7Glauber Costa#endif /* _TCP_MEMCG_H */
18