Lines Matching refs:pids
73 static struct pids_cgroup *parent_pids(struct pids_cgroup *pids) in parent_pids() argument
75 return css_pids(pids->css.parent); in parent_pids()
81 struct pids_cgroup *pids; in pids_css_alloc() local
83 pids = kzalloc(sizeof(struct pids_cgroup), GFP_KERNEL); in pids_css_alloc()
84 if (!pids) in pids_css_alloc()
87 atomic64_set(&pids->limit, PIDS_MAX); in pids_css_alloc()
88 return &pids->css; in pids_css_alloc()
114 static void pids_cancel(struct pids_cgroup *pids, int num) in pids_cancel() argument
120 WARN_ON_ONCE(atomic64_add_negative(-num, &pids->counter)); in pids_cancel()
128 static void pids_uncharge(struct pids_cgroup *pids, int num) in pids_uncharge() argument
132 for (p = pids; parent_pids(p); p = parent_pids(p)) in pids_uncharge()
145 static void pids_charge(struct pids_cgroup *pids, int num) in pids_charge() argument
149 for (p = pids; parent_pids(p); p = parent_pids(p)) { in pids_charge()
166 static int pids_try_charge(struct pids_cgroup *pids, int num, struct pids_cgroup **fail) in pids_try_charge() argument
170 for (p = pids; parent_pids(p); p = parent_pids(p)) { in pids_try_charge()
193 for (q = pids; q != p; q = parent_pids(q)) in pids_try_charge()
206 struct pids_cgroup *pids = css_pids(dst_css); in pids_can_attach() local
218 pids_charge(pids, 1); in pids_can_attach()
231 struct pids_cgroup *pids = css_pids(dst_css); in pids_cancel_attach() local
239 pids_uncharge(pids, 1); in pids_cancel_attach()
275 struct pids_cgroup *pids, *pids_over_limit; in pids_can_fork() local
278 pids = css_pids(cset->subsys[pids_cgrp_id]); in pids_can_fork()
279 err = pids_try_charge(pids, 1, &pids_over_limit); in pids_can_fork()
281 pids_event(pids, pids_over_limit); in pids_can_fork()
288 struct pids_cgroup *pids; in pids_cancel_fork() local
290 pids = css_pids(cset->subsys[pids_cgrp_id]); in pids_cancel_fork()
291 pids_uncharge(pids, 1); in pids_cancel_fork()
296 struct pids_cgroup *pids = css_pids(task_css(task, pids_cgrp_id)); in pids_release() local
298 pids_uncharge(pids, 1); in pids_release()
305 struct pids_cgroup *pids = css_pids(css); in pids_max_write() local
327 atomic64_set(&pids->limit, limit); in pids_max_write()
334 struct pids_cgroup *pids = css_pids(css); in pids_max_show() local
335 int64_t limit = atomic64_read(&pids->limit); in pids_max_show()
348 struct pids_cgroup *pids = css_pids(css); in pids_current_read() local
350 return atomic64_read(&pids->counter); in pids_current_read()
356 struct pids_cgroup *pids = css_pids(css); in pids_peak_read() local
358 return READ_ONCE(pids->watermark); in pids_peak_read()
363 struct pids_cgroup *pids = css_pids(seq_css(sf)); in __pids_events_show() local
372 events = local ? pids->events_local : pids->events; in __pids_events_show()