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