Lines Matching refs:h_cg
36 __hugetlb_cgroup_counter_from_cgroup(struct hugetlb_cgroup *h_cg, int idx,
40 return &h_cg->rsvd_hugepage[idx];
41 return &h_cg->hugepage[idx];
45 hugetlb_cgroup_counter_from_cgroup(struct hugetlb_cgroup *h_cg, int idx)
47 return __hugetlb_cgroup_counter_from_cgroup(h_cg, idx, false);
51 hugetlb_cgroup_counter_from_cgroup_rsvd(struct hugetlb_cgroup *h_cg, int idx)
53 return __hugetlb_cgroup_counter_from_cgroup(h_cg, idx, true);
68 static inline bool hugetlb_cgroup_is_root(struct hugetlb_cgroup *h_cg)
70 return (h_cg == root_h_cgroup);
74 parent_hugetlb_cgroup(struct hugetlb_cgroup *h_cg)
76 return hugetlb_cgroup_from_css(h_cg->css.parent);
79 static inline bool hugetlb_cgroup_have_usage(struct hugetlb_cgroup *h_cg)
85 hugetlb_cgroup_counter_from_cgroup(h_cg, idx)))
161 static void hugetlb_cgroup_move_parent(int idx, struct hugetlb_cgroup *h_cg,
167 struct hugetlb_cgroup *parent = parent_hugetlb_cgroup(h_cg);
175 if (!page_hcg || page_hcg != h_cg)
184 counter = &h_cg->hugepage[idx];
199 struct hugetlb_cgroup *h_cg = hugetlb_cgroup_from_css(css);
209 hugetlb_cgroup_move_parent(idx, h_cg, page);
215 } while (hugetlb_cgroup_have_usage(h_cg));
237 struct hugetlb_cgroup *h_cg = NULL;
249 h_cg = hugetlb_cgroup_from_task(current);
250 if (!css_tryget(&h_cg->css)) {
257 __hugetlb_cgroup_counter_from_cgroup(h_cg, idx, rsvd),
260 hugetlb_event(h_cg, idx, HUGETLB_MAX);
261 css_put(&h_cg->css);
268 css_put(&h_cg->css);
270 *ptr = h_cg;
288 struct hugetlb_cgroup *h_cg,
291 if (hugetlb_cgroup_disabled() || !h_cg)
294 __set_hugetlb_cgroup(page, h_cg, rsvd);
299 struct hugetlb_cgroup *h_cg,
302 __hugetlb_cgroup_commit_charge(idx, nr_pages, h_cg, page, false);
306 struct hugetlb_cgroup *h_cg,
309 __hugetlb_cgroup_commit_charge(idx, nr_pages, h_cg, page, true);
318 struct hugetlb_cgroup *h_cg;
323 h_cg = __hugetlb_cgroup_from_page(page, rsvd);
324 if (unlikely(!h_cg))
328 page_counter_uncharge(__hugetlb_cgroup_counter_from_cgroup(h_cg, idx,
333 css_put(&h_cg->css);
351 struct hugetlb_cgroup *h_cg,
354 if (hugetlb_cgroup_disabled() || !h_cg)
360 page_counter_uncharge(__hugetlb_cgroup_counter_from_cgroup(h_cg, idx,
365 css_put(&h_cg->css);
369 struct hugetlb_cgroup *h_cg)
371 __hugetlb_cgroup_uncharge_cgroup(idx, nr_pages, h_cg, false);
375 struct hugetlb_cgroup *h_cg)
377 __hugetlb_cgroup_uncharge_cgroup(idx, nr_pages, h_cg, true);
429 struct hugetlb_cgroup *h_cg = hugetlb_cgroup_from_css(css);
431 counter = &h_cg->hugepage[MEMFILE_IDX(cft->private)];
432 rsvd_counter = &h_cg->rsvd_hugepage[MEMFILE_IDX(cft->private)];
463 struct hugetlb_cgroup *h_cg = hugetlb_cgroup_from_css(seq_css(seq));
466 counter = &h_cg->hugepage[idx];
473 counter = &h_cg->rsvd_hugepage[idx];
480 counter = &h_cg->rsvd_hugepage[idx];
504 struct hugetlb_cgroup *h_cg = hugetlb_cgroup_from_css(of_css(of));
507 if (hugetlb_cgroup_is_root(h_cg)) /* Can't set limit on root */
525 __hugetlb_cgroup_counter_from_cgroup(h_cg, idx, rsvd),
553 struct hugetlb_cgroup *h_cg = hugetlb_cgroup_from_css(of_css(of));
555 counter = &h_cg->hugepage[MEMFILE_IDX(of_cft(of)->private)];
556 rsvd_counter = &h_cg->rsvd_hugepage[MEMFILE_IDX(of_cft(of)->private)];
594 struct hugetlb_cgroup *h_cg = hugetlb_cgroup_from_css(seq_css(seq));
599 max = atomic_long_read(&h_cg->events_local[idx][HUGETLB_MAX]);
601 max = atomic_long_read(&h_cg->events[idx][HUGETLB_MAX]);
780 struct hugetlb_cgroup *h_cg;
789 h_cg = hugetlb_cgroup_from_page(oldhpage);
794 /* move the h_cg details to new cgroup */
795 set_hugetlb_cgroup(newhpage, h_cg);