mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 02:21:52 +09:00
Revert "mm/hugetlb_cgroup: convert __set_hugetlb_cgroup() to folios"
This reverts commit8080591648which is commita098c97772upstream. It breaks the Android kernel abi and can be brought back in the future in an abi-safe way if it is really needed. Bug: 161946584 Change-Id: I584f17cf69493bf2306ce4ca3527a0ae65daa734 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
@@ -90,31 +90,31 @@ hugetlb_cgroup_from_page_rsvd(struct page *page)
|
|||||||
return __hugetlb_cgroup_from_page(page, true);
|
return __hugetlb_cgroup_from_page(page, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void __set_hugetlb_cgroup(struct folio *folio,
|
static inline void __set_hugetlb_cgroup(struct page *page,
|
||||||
struct hugetlb_cgroup *h_cg, bool rsvd)
|
struct hugetlb_cgroup *h_cg, bool rsvd)
|
||||||
{
|
{
|
||||||
VM_BUG_ON_FOLIO(!folio_test_hugetlb(folio), folio);
|
VM_BUG_ON_PAGE(!PageHuge(page), page);
|
||||||
|
|
||||||
if (folio_order(folio) < HUGETLB_CGROUP_MIN_ORDER)
|
if (compound_order(page) < HUGETLB_CGROUP_MIN_ORDER)
|
||||||
return;
|
return;
|
||||||
if (rsvd)
|
if (rsvd)
|
||||||
set_page_private(folio_page(folio, SUBPAGE_INDEX_CGROUP_RSVD),
|
set_page_private(page + SUBPAGE_INDEX_CGROUP_RSVD,
|
||||||
(unsigned long)h_cg);
|
(unsigned long)h_cg);
|
||||||
else
|
else
|
||||||
set_page_private(folio_page(folio, SUBPAGE_INDEX_CGROUP),
|
set_page_private(page + SUBPAGE_INDEX_CGROUP,
|
||||||
(unsigned long)h_cg);
|
(unsigned long)h_cg);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void set_hugetlb_cgroup(struct page *page,
|
static inline void set_hugetlb_cgroup(struct page *page,
|
||||||
struct hugetlb_cgroup *h_cg)
|
struct hugetlb_cgroup *h_cg)
|
||||||
{
|
{
|
||||||
__set_hugetlb_cgroup(page_folio(page), h_cg, false);
|
__set_hugetlb_cgroup(page, h_cg, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void set_hugetlb_cgroup_rsvd(struct page *page,
|
static inline void set_hugetlb_cgroup_rsvd(struct page *page,
|
||||||
struct hugetlb_cgroup *h_cg)
|
struct hugetlb_cgroup *h_cg)
|
||||||
{
|
{
|
||||||
__set_hugetlb_cgroup(page_folio(page), h_cg, true);
|
__set_hugetlb_cgroup(page, h_cg, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline bool hugetlb_cgroup_disabled(void)
|
static inline bool hugetlb_cgroup_disabled(void)
|
||||||
|
|||||||
@@ -314,7 +314,7 @@ static void __hugetlb_cgroup_commit_charge(int idx, unsigned long nr_pages,
|
|||||||
if (hugetlb_cgroup_disabled() || !h_cg)
|
if (hugetlb_cgroup_disabled() || !h_cg)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
__set_hugetlb_cgroup(page_folio(page), h_cg, rsvd);
|
__set_hugetlb_cgroup(page, h_cg, rsvd);
|
||||||
if (!rsvd) {
|
if (!rsvd) {
|
||||||
unsigned long usage =
|
unsigned long usage =
|
||||||
h_cg->nodeinfo[page_to_nid(page)]->usage[idx];
|
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,
|
|||||||
h_cg = __hugetlb_cgroup_from_page(page, rsvd);
|
h_cg = __hugetlb_cgroup_from_page(page, rsvd);
|
||||||
if (unlikely(!h_cg))
|
if (unlikely(!h_cg))
|
||||||
return;
|
return;
|
||||||
__set_hugetlb_cgroup(page_folio(page), NULL, rsvd);
|
__set_hugetlb_cgroup(page, NULL, rsvd);
|
||||||
|
|
||||||
page_counter_uncharge(__hugetlb_cgroup_counter_from_cgroup(h_cg, idx,
|
page_counter_uncharge(__hugetlb_cgroup_counter_from_cgroup(h_cg, idx,
|
||||||
rsvd),
|
rsvd),
|
||||||
|
|||||||
Reference in New Issue
Block a user