Lines Matching refs:pids

64 static struct pids_cgroup *parent_pids(struct pids_cgroup *pids)  in parent_pids()  argument
66 return css_pids(pids->css.parent); in parent_pids()
72 struct pids_cgroup *pids; in pids_css_alloc() local
74 pids = kzalloc(sizeof(struct pids_cgroup), GFP_KERNEL); in pids_css_alloc()
75 if (!pids) in pids_css_alloc()
78 atomic64_set(&pids->counter, 0); in pids_css_alloc()
79 atomic64_set(&pids->limit, PIDS_MAX); in pids_css_alloc()
80 atomic64_set(&pids->events_limit, 0); in pids_css_alloc()
81 return &pids->css; in pids_css_alloc()
107 static void pids_cancel(struct pids_cgroup *pids, int num) in pids_cancel() argument
113 WARN_ON_ONCE(atomic64_add_negative(-num, &pids->counter)); in pids_cancel()
121 static void pids_uncharge(struct pids_cgroup *pids, int num) in pids_uncharge() argument
125 for (p = pids; parent_pids(p); p = parent_pids(p)) in pids_uncharge()
138 static void pids_charge(struct pids_cgroup *pids, int num) in pids_charge() argument
142 for (p = pids; parent_pids(p); p = parent_pids(p)) { in pids_charge()
158 static int pids_try_charge(struct pids_cgroup *pids, int num) in pids_try_charge() argument
162 for (p = pids; parent_pids(p); p = parent_pids(p)) { in pids_try_charge()
184 for (q = pids; q != p; q = parent_pids(q)) in pids_try_charge()
197 struct pids_cgroup *pids = css_pids(dst_css); in pids_can_attach() local
209 pids_charge(pids, 1); in pids_can_attach()
222 struct pids_cgroup *pids = css_pids(dst_css); in pids_cancel_attach() local
230 pids_uncharge(pids, 1); in pids_cancel_attach()
241 struct pids_cgroup *pids; in pids_can_fork() local
248 pids = css_pids(css); in pids_can_fork()
249 err = pids_try_charge(pids, 1); in pids_can_fork()
252 if (atomic64_inc_return(&pids->events_limit) == 1) { in pids_can_fork()
257 cgroup_file_notify(&pids->events_file); in pids_can_fork()
265 struct pids_cgroup *pids; in pids_cancel_fork() local
271 pids = css_pids(css); in pids_cancel_fork()
272 pids_uncharge(pids, 1); in pids_cancel_fork()
277 struct pids_cgroup *pids = css_pids(task_css(task, pids_cgrp_id)); in pids_release() local
279 pids_uncharge(pids, 1); in pids_release()
286 struct pids_cgroup *pids = css_pids(css); in pids_max_write() local
308 atomic64_set(&pids->limit, limit); in pids_max_write()
315 struct pids_cgroup *pids = css_pids(css); in pids_max_show() local
316 int64_t limit = atomic64_read(&pids->limit); in pids_max_show()
329 struct pids_cgroup *pids = css_pids(css); in pids_current_read() local
331 return atomic64_read(&pids->counter); in pids_current_read()
337 struct pids_cgroup *pids = css_pids(css); in pids_peak_read() local
339 return READ_ONCE(pids->watermark); in pids_peak_read()
344 struct pids_cgroup *pids = css_pids(seq_css(sf)); in pids_events_show() local
346 seq_printf(sf, "max %lld\n", (s64)atomic64_read(&pids->events_limit)); in pids_events_show()