tcp_memcontrol.h revision 1d62e43657c63a858560c98069706c705d20505d
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); 151d62e43657c63a858560c98069706c705d20505dGlauber Costaint tcp_init_cgroup(struct mem_cgroup *memcg, struct cgroup_subsys *ss); 161d62e43657c63a858560c98069706c705d20505dGlauber Costavoid tcp_destroy_cgroup(struct mem_cgroup *memcg); 173aaabe2342c36bf48567b88fa78b819eee14bb5eGlauber Costaunsigned long long tcp_max_memory(const struct mem_cgroup *memcg); 183aaabe2342c36bf48567b88fa78b819eee14bb5eGlauber Costavoid tcp_prot_mem(struct mem_cgroup *memcg, long val, int idx); 19d1a4c0b37c296e600ffe08edb0db2dc1b8f550d7Glauber Costa#endif /* _TCP_MEMCG_H */ 20