diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/core/netprio_cgroup.c | 26 | ||||
-rw-r--r-- | net/ipv4/tcp_memcontrol.c | 57 | ||||
-rw-r--r-- | net/sched/cls_cgroup.c | 27 |
3 files changed, 49 insertions, 61 deletions
diff --git a/net/core/netprio_cgroup.c b/net/core/netprio_cgroup.c index ba6900f73900..dbfd4e7f8dc4 100644 --- a/net/core/netprio_cgroup.c +++ b/net/core/netprio_cgroup.c | |||
@@ -23,21 +23,6 @@ | |||
23 | #include <net/sock.h> | 23 | #include <net/sock.h> |
24 | #include <net/netprio_cgroup.h> | 24 | #include <net/netprio_cgroup.h> |
25 | 25 | ||
26 | static struct cgroup_subsys_state *cgrp_create(struct cgroup *cgrp); | ||
27 | static void cgrp_destroy(struct cgroup *cgrp); | ||
28 | static int cgrp_populate(struct cgroup_subsys *ss, struct cgroup *cgrp); | ||
29 | |||
30 | struct cgroup_subsys net_prio_subsys = { | ||
31 | .name = "net_prio", | ||
32 | .create = cgrp_create, | ||
33 | .destroy = cgrp_destroy, | ||
34 | .populate = cgrp_populate, | ||
35 | #ifdef CONFIG_NETPRIO_CGROUP | ||
36 | .subsys_id = net_prio_subsys_id, | ||
37 | #endif | ||
38 | .module = THIS_MODULE | ||
39 | }; | ||
40 | |||
41 | #define PRIOIDX_SZ 128 | 26 | #define PRIOIDX_SZ 128 |
42 | 27 | ||
43 | static unsigned long prioidx_map[PRIOIDX_SZ]; | 28 | static unsigned long prioidx_map[PRIOIDX_SZ]; |
@@ -264,6 +249,17 @@ static int cgrp_populate(struct cgroup_subsys *ss, struct cgroup *cgrp) | |||
264 | return cgroup_add_files(cgrp, ss, ss_files, ARRAY_SIZE(ss_files)); | 249 | return cgroup_add_files(cgrp, ss, ss_files, ARRAY_SIZE(ss_files)); |
265 | } | 250 | } |
266 | 251 | ||
252 | struct cgroup_subsys net_prio_subsys = { | ||
253 | .name = "net_prio", | ||
254 | .create = cgrp_create, | ||
255 | .destroy = cgrp_destroy, | ||
256 | .populate = cgrp_populate, | ||
257 | #ifdef CONFIG_NETPRIO_CGROUP | ||
258 | .subsys_id = net_prio_subsys_id, | ||
259 | #endif | ||
260 | .module = THIS_MODULE | ||
261 | }; | ||
262 | |||
267 | static int netprio_device_event(struct notifier_block *unused, | 263 | static int netprio_device_event(struct notifier_block *unused, |
268 | unsigned long event, void *ptr) | 264 | unsigned long event, void *ptr) |
269 | { | 265 | { |
diff --git a/net/ipv4/tcp_memcontrol.c b/net/ipv4/tcp_memcontrol.c index e795272fbe9e..4d3ee407d2d8 100644 --- a/net/ipv4/tcp_memcontrol.c +++ b/net/ipv4/tcp_memcontrol.c | |||
@@ -6,36 +6,7 @@ | |||
6 | #include <linux/memcontrol.h> | 6 | #include <linux/memcontrol.h> |
7 | #include <linux/module.h> | 7 | #include <linux/module.h> |
8 | 8 | ||
9 | static u64 tcp_cgroup_read(struct cgroup *cont, struct cftype *cft); | 9 | static struct cftype tcp_files[4]; /* XXX: will be removed soon */ |
10 | static int tcp_cgroup_write(struct cgroup *cont, struct cftype *cft, | ||
11 | const char *buffer); | ||
12 | static int tcp_cgroup_reset(struct cgroup *cont, unsigned int event); | ||
13 | |||
14 | static struct cftype tcp_files[] = { | ||
15 | { | ||
16 | .name = "kmem.tcp.limit_in_bytes", | ||
17 | .write_string = tcp_cgroup_write, | ||
18 | .read_u64 = tcp_cgroup_read, | ||
19 | .private = RES_LIMIT, | ||
20 | }, | ||
21 | { | ||
22 | .name = "kmem.tcp.usage_in_bytes", | ||
23 | .read_u64 = tcp_cgroup_read, | ||
24 | .private = RES_USAGE, | ||
25 | }, | ||
26 | { | ||
27 | .name = "kmem.tcp.failcnt", | ||
28 | .private = RES_FAILCNT, | ||
29 | .trigger = tcp_cgroup_reset, | ||
30 | .read_u64 = tcp_cgroup_read, | ||
31 | }, | ||
32 | { | ||
33 | .name = "kmem.tcp.max_usage_in_bytes", | ||
34 | .private = RES_MAX_USAGE, | ||
35 | .trigger = tcp_cgroup_reset, | ||
36 | .read_u64 = tcp_cgroup_read, | ||
37 | }, | ||
38 | }; | ||
39 | 10 | ||
40 | static inline struct tcp_memcontrol *tcp_from_cgproto(struct cg_proto *cg_proto) | 11 | static inline struct tcp_memcontrol *tcp_from_cgproto(struct cg_proto *cg_proto) |
41 | { | 12 | { |
@@ -270,3 +241,29 @@ void tcp_prot_mem(struct mem_cgroup *memcg, long val, int idx) | |||
270 | 241 | ||
271 | tcp->tcp_prot_mem[idx] = val; | 242 | tcp->tcp_prot_mem[idx] = val; |
272 | } | 243 | } |
244 | |||
245 | static struct cftype tcp_files[] = { | ||
246 | { | ||
247 | .name = "kmem.tcp.limit_in_bytes", | ||
248 | .write_string = tcp_cgroup_write, | ||
249 | .read_u64 = tcp_cgroup_read, | ||
250 | .private = RES_LIMIT, | ||
251 | }, | ||
252 | { | ||
253 | .name = "kmem.tcp.usage_in_bytes", | ||
254 | .read_u64 = tcp_cgroup_read, | ||
255 | .private = RES_USAGE, | ||
256 | }, | ||
257 | { | ||
258 | .name = "kmem.tcp.failcnt", | ||
259 | .private = RES_FAILCNT, | ||
260 | .trigger = tcp_cgroup_reset, | ||
261 | .read_u64 = tcp_cgroup_read, | ||
262 | }, | ||
263 | { | ||
264 | .name = "kmem.tcp.max_usage_in_bytes", | ||
265 | .private = RES_MAX_USAGE, | ||
266 | .trigger = tcp_cgroup_reset, | ||
267 | .read_u64 = tcp_cgroup_read, | ||
268 | }, | ||
269 | }; | ||
diff --git a/net/sched/cls_cgroup.c b/net/sched/cls_cgroup.c index 1afaa284fcd7..024df8a32275 100644 --- a/net/sched/cls_cgroup.c +++ b/net/sched/cls_cgroup.c | |||
@@ -22,22 +22,6 @@ | |||
22 | #include <net/sock.h> | 22 | #include <net/sock.h> |
23 | #include <net/cls_cgroup.h> | 23 | #include <net/cls_cgroup.h> |
24 | 24 | ||
25 | static struct cgroup_subsys_state *cgrp_create(struct cgroup *cgrp); | ||
26 | static void cgrp_destroy(struct cgroup *cgrp); | ||
27 | static int cgrp_populate(struct cgroup_subsys *ss, struct cgroup *cgrp); | ||
28 | |||
29 | struct cgroup_subsys net_cls_subsys = { | ||
30 | .name = "net_cls", | ||
31 | .create = cgrp_create, | ||
32 | .destroy = cgrp_destroy, | ||
33 | .populate = cgrp_populate, | ||
34 | #ifdef CONFIG_NET_CLS_CGROUP | ||
35 | .subsys_id = net_cls_subsys_id, | ||
36 | #endif | ||
37 | .module = THIS_MODULE, | ||
38 | }; | ||
39 | |||
40 | |||
41 | static inline struct cgroup_cls_state *cgrp_cls_state(struct cgroup *cgrp) | 25 | static inline struct cgroup_cls_state *cgrp_cls_state(struct cgroup *cgrp) |
42 | { | 26 | { |
43 | return container_of(cgroup_subsys_state(cgrp, net_cls_subsys_id), | 27 | return container_of(cgroup_subsys_state(cgrp, net_cls_subsys_id), |
@@ -93,6 +77,17 @@ static int cgrp_populate(struct cgroup_subsys *ss, struct cgroup *cgrp) | |||
93 | return cgroup_add_files(cgrp, ss, ss_files, ARRAY_SIZE(ss_files)); | 77 | return cgroup_add_files(cgrp, ss, ss_files, ARRAY_SIZE(ss_files)); |
94 | } | 78 | } |
95 | 79 | ||
80 | struct cgroup_subsys net_cls_subsys = { | ||
81 | .name = "net_cls", | ||
82 | .create = cgrp_create, | ||
83 | .destroy = cgrp_destroy, | ||
84 | .populate = cgrp_populate, | ||
85 | #ifdef CONFIG_NET_CLS_CGROUP | ||
86 | .subsys_id = net_cls_subsys_id, | ||
87 | #endif | ||
88 | .module = THIS_MODULE, | ||
89 | }; | ||
90 | |||
96 | struct cls_cgroup_head { | 91 | struct cls_cgroup_head { |
97 | u32 handle; | 92 | u32 handle; |
98 | struct tcf_exts exts; | 93 | struct tcf_exts exts; |