Skip to content

Commit 17b46e7

Browse files
bjackmanakpm00
authored andcommitted
mm/page_alloc: dedupe some memcg uncharging logic
The duplication makes it seem like some work is required before uncharging in the !PageHWPoison case. But it isn't, so we can simplify the code a little. Note the PageMemcgKmem check is redundant, but I've left it in as it avoids an unnecessary function call. Link: https://lkml.kernel.org/r/[email protected] Signed-off-by: Brendan Jackman <[email protected]> Reviewed-by: Yosry Ahmed <[email protected]> Cc: Johannes Weiner <[email protected]> Cc: Michal Hocko <[email protected]> Cc: Muchun Song <[email protected]> Cc: Roman Gushchin <[email protected]> Cc: Shakeel Butt <[email protected]> Signed-off-by: Andrew Morton <[email protected]>
1 parent 2033c98 commit 17b46e7

File tree

1 file changed

+4
-8
lines changed

1 file changed

+4
-8
lines changed

mm/page_alloc.c

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1086,13 +1086,11 @@ static __always_inline bool free_pages_prepare(struct page *page,
10861086
trace_mm_page_free(page, order);
10871087
kmsan_free_page(page, order);
10881088

1089+
if (memcg_kmem_online() && PageMemcgKmem(page))
1090+
__memcg_kmem_uncharge_page(page, order);
1091+
10891092
if (unlikely(PageHWPoison(page)) && !order) {
1090-
/*
1091-
* Do not let hwpoison pages hit pcplists/buddy
1092-
* Untie memcg state and reset page's owner
1093-
*/
1094-
if (memcg_kmem_online() && PageMemcgKmem(page))
1095-
__memcg_kmem_uncharge_page(page, order);
1093+
/* Do not let hwpoison pages hit pcplists/buddy */
10961094
reset_page_owner(page, order);
10971095
page_table_check_free(page, order);
10981096
return false;
@@ -1123,8 +1121,6 @@ static __always_inline bool free_pages_prepare(struct page *page,
11231121
}
11241122
if (PageMappingFlags(page))
11251123
page->mapping = NULL;
1126-
if (memcg_kmem_online() && PageMemcgKmem(page))
1127-
__memcg_kmem_uncharge_page(page, order);
11281124
if (is_check_pages_enabled()) {
11291125
if (free_page_is_bad(page))
11301126
bad++;

0 commit comments

Comments
 (0)