Commit 91f5345a authored by Matthew Wilcox (Oracle)'s avatar Matthew Wilcox (Oracle) Committed by Linus Torvalds

mm/debug: improve memcg debugging

The memcg_data is only valid on the head page, not the tail pages.  Change
the format and location of the printout within the dump to match the other
parts of struct page better.

Link: https://lkml.kernel.org/r/20210114190200.1894484-1-willy@infradead.orgSigned-off-by: default avatarMatthew Wilcox (Oracle) <willy@infradead.org>
Reviewed-by: default avatarZi Yan <ziy@nvidia.com>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 457c82c3
...@@ -110,6 +110,11 @@ void __dump_page(struct page *page, const char *reason) ...@@ -110,6 +110,11 @@ void __dump_page(struct page *page, const char *reason)
head_compound_mapcount(head)); head_compound_mapcount(head));
} }
} }
#ifdef CONFIG_MEMCG
if (head->memcg_data)
pr_warn("memcg:%lx\n", head->memcg_data);
#endif
if (PageKsm(page)) if (PageKsm(page))
type = "ksm "; type = "ksm ";
else if (PageAnon(page)) else if (PageAnon(page))
...@@ -180,11 +185,6 @@ void __dump_page(struct page *page, const char *reason) ...@@ -180,11 +185,6 @@ void __dump_page(struct page *page, const char *reason)
if (reason) if (reason)
pr_warn("page dumped because: %s\n", reason); pr_warn("page dumped because: %s\n", reason);
#ifdef CONFIG_MEMCG
if (!page_poisoned && page->memcg_data)
pr_warn("pages's memcg:%lx\n", page->memcg_data);
#endif
} }
void dump_page(struct page *page, const char *reason) void dump_page(struct page *page, const char *reason)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment