Skip to content

Commit 328e505

Browse files
sidkumar99Sasha Levin
authored andcommitted
mm/hugetlb_cgroup: convert __set_hugetlb_cgroup() to folios
[ Upstream commit a098c97 ] Patch series "convert hugetlb_cgroup helper functions to folios", v2. This patch series continues the conversion of hugetlb code from being managed in pages to folios by converting many of the hugetlb_cgroup helper functions to use folios. This allows the core hugetlb functions to pass in a folio to these helper functions. This patch (of 9); Change __set_hugetlb_cgroup() to use folios so it is explicit that the function operates on a head page. Link: https://lkml.kernel.org/r/20221101223059.460937-1-sidhartha.kumar@oracle.com Link: https://lkml.kernel.org/r/20221101223059.460937-2-sidhartha.kumar@oracle.com Signed-off-by: Sidhartha Kumar <sidhartha.kumar@oracle.com> Reviewed-by: Mike Kravetz <mike.kravetz@oracle.com> Reviewed-by: Muchun Song <songmuchun@bytedance.com> Cc: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com> Cc: Bui Quang Minh <minhquangbui99@gmail.com> Cc: Matthew Wilcox (Oracle) <willy@infradead.org> Cc: Miaohe Lin <linmiaohe@huawei.com> Cc: Mina Almasry <almasrymina@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Stable-dep-of: b76b469 ("mm/hugetlb: fix missing hugetlb_lock for resv uncharge") Signed-off-by: Sasha Levin <sashal@kernel.org>
1 parent d280d67 commit 328e505

File tree

2 files changed

+9
-9
lines changed

2 files changed

+9
-9
lines changed

include/linux/hugetlb_cgroup.h

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -90,31 +90,31 @@ hugetlb_cgroup_from_page_rsvd(struct page *page)
9090
return __hugetlb_cgroup_from_page(page, true);
9191
}
9292

93-
static inline void __set_hugetlb_cgroup(struct page *page,
93+
static inline void __set_hugetlb_cgroup(struct folio *folio,
9494
struct hugetlb_cgroup *h_cg, bool rsvd)
9595
{
96-
VM_BUG_ON_PAGE(!PageHuge(page), page);
96+
VM_BUG_ON_FOLIO(!folio_test_hugetlb(folio), folio);
9797

98-
if (compound_order(page) < HUGETLB_CGROUP_MIN_ORDER)
98+
if (folio_order(folio) < HUGETLB_CGROUP_MIN_ORDER)
9999
return;
100100
if (rsvd)
101-
set_page_private(page + SUBPAGE_INDEX_CGROUP_RSVD,
101+
set_page_private(folio_page(folio, SUBPAGE_INDEX_CGROUP_RSVD),
102102
(unsigned long)h_cg);
103103
else
104-
set_page_private(page + SUBPAGE_INDEX_CGROUP,
104+
set_page_private(folio_page(folio, SUBPAGE_INDEX_CGROUP),
105105
(unsigned long)h_cg);
106106
}
107107

108108
static inline void set_hugetlb_cgroup(struct page *page,
109109
struct hugetlb_cgroup *h_cg)
110110
{
111-
__set_hugetlb_cgroup(page, h_cg, false);
111+
__set_hugetlb_cgroup(page_folio(page), h_cg, false);
112112
}
113113

114114
static inline void set_hugetlb_cgroup_rsvd(struct page *page,
115115
struct hugetlb_cgroup *h_cg)
116116
{
117-
__set_hugetlb_cgroup(page, h_cg, true);
117+
__set_hugetlb_cgroup(page_folio(page), h_cg, true);
118118
}
119119

120120
static inline bool hugetlb_cgroup_disabled(void)

mm/hugetlb_cgroup.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -314,7 +314,7 @@ static void __hugetlb_cgroup_commit_charge(int idx, unsigned long nr_pages,
314314
if (hugetlb_cgroup_disabled() || !h_cg)
315315
return;
316316

317-
__set_hugetlb_cgroup(page, h_cg, rsvd);
317+
__set_hugetlb_cgroup(page_folio(page), h_cg, rsvd);
318318
if (!rsvd) {
319319
unsigned long usage =
320320
h_cg->nodeinfo[page_to_nid(page)]->usage[idx];
@@ -356,7 +356,7 @@ static void __hugetlb_cgroup_uncharge_page(int idx, unsigned long nr_pages,
356356
h_cg = __hugetlb_cgroup_from_page(page, rsvd);
357357
if (unlikely(!h_cg))
358358
return;
359-
__set_hugetlb_cgroup(page, NULL, rsvd);
359+
__set_hugetlb_cgroup(page_folio(page), NULL, rsvd);
360360

361361
page_counter_uncharge(__hugetlb_cgroup_counter_from_cgroup(h_cg, idx,
362362
rsvd),

0 commit comments

Comments
 (0)