hugetlb_cgroup: use helper for_each_hstate and hstate_index

Use helper for_each_hstate and hstate_index to iterate the hstate and get
the hstate index. Minor readability improvement.

Link: https://lkml.kernel.org/r/20220729080106.12752-6-linmiaohe@huawei.com
Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>
Reviewed-by: Mina Almasry <almasrymina@google.com>
Cc: Mike Kravetz <mike.kravetz@oracle.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
Miaohe Lin 2022-07-29 16:01:06 +08:00 committed by Andrew Morton
parent 99249387cf
commit c37213c5ea
1 changed files with 4 additions and 7 deletions

View File

@ -75,11 +75,11 @@ parent_hugetlb_cgroup(struct hugetlb_cgroup *h_cg)
static inline bool hugetlb_cgroup_have_usage(struct hugetlb_cgroup *h_cg) static inline bool hugetlb_cgroup_have_usage(struct hugetlb_cgroup *h_cg)
{ {
int idx; struct hstate *h;
for (idx = 0; idx < hugetlb_max_hstate; idx++) { for_each_hstate(h) {
if (page_counter_read( if (page_counter_read(
hugetlb_cgroup_counter_from_cgroup(h_cg, idx))) hugetlb_cgroup_counter_from_cgroup(h_cg, hstate_index(h))))
return true; return true;
} }
return false; return false;
@ -225,17 +225,14 @@ static void hugetlb_cgroup_css_offline(struct cgroup_subsys_state *css)
struct hugetlb_cgroup *h_cg = hugetlb_cgroup_from_css(css); struct hugetlb_cgroup *h_cg = hugetlb_cgroup_from_css(css);
struct hstate *h; struct hstate *h;
struct page *page; struct page *page;
int idx;
do { do {
idx = 0;
for_each_hstate(h) { for_each_hstate(h) {
spin_lock_irq(&hugetlb_lock); spin_lock_irq(&hugetlb_lock);
list_for_each_entry(page, &h->hugepage_activelist, lru) list_for_each_entry(page, &h->hugepage_activelist, lru)
hugetlb_cgroup_move_parent(idx, h_cg, page); hugetlb_cgroup_move_parent(hstate_index(h), h_cg, page);
spin_unlock_irq(&hugetlb_lock); spin_unlock_irq(&hugetlb_lock);
idx++;
} }
cond_resched(); cond_resched();
} while (hugetlb_cgroup_have_usage(h_cg)); } while (hugetlb_cgroup_have_usage(h_cg));