From: Greg Kroah-Hartman Date: Mon, 26 Aug 2019 16:30:19 +0000 (+0200) Subject: 4.14-stable patches X-Git-Tag: v4.14.141~28 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8c5062607f1b283a8b78be2306652c288a4c7b28;p=thirdparty%2Fkernel%2Fstable-queue.git 4.14-stable patches added patches: mm-page_owner-handle-thp-splits-correctly.patch --- diff --git a/queue-4.14/mm-page_owner-handle-thp-splits-correctly.patch b/queue-4.14/mm-page_owner-handle-thp-splits-correctly.patch new file mode 100644 index 00000000000..2ded378d67a --- /dev/null +++ b/queue-4.14/mm-page_owner-handle-thp-splits-correctly.patch @@ -0,0 +1,54 @@ +From f7da677bc6e72033f0981b9d58b5c5d409fa641e Mon Sep 17 00:00:00 2001 +From: Vlastimil Babka +Date: Sat, 24 Aug 2019 17:54:59 -0700 +Subject: mm, page_owner: handle THP splits correctly + +From: Vlastimil Babka + +commit f7da677bc6e72033f0981b9d58b5c5d409fa641e upstream. + +THP splitting path is missing the split_page_owner() call that +split_page() has. + +As a result, split THP pages are wrongly reported in the page_owner file +as order-9 pages. Furthermore when the former head page is freed, the +remaining former tail pages are not listed in the page_owner file at +all. This patch fixes that by adding the split_page_owner() call into +__split_huge_page(). + +Link: http://lkml.kernel.org/r/20190820131828.22684-2-vbabka@suse.cz +Fixes: a9627bc5e34e ("mm/page_owner: introduce split_page_owner and replace manual handling") +Reported-by: Kirill A. Shutemov +Signed-off-by: Vlastimil Babka +Cc: Michal Hocko +Cc: Mel Gorman +Cc: Matthew Wilcox +Cc: +Signed-off-by: Andrew Morton +Signed-off-by: Linus Torvalds +Signed-off-by: Greg Kroah-Hartman + +--- + mm/huge_memory.c | 4 ++++ + 1 file changed, 4 insertions(+) + +--- a/mm/huge_memory.c ++++ b/mm/huge_memory.c +@@ -33,6 +33,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -2387,6 +2388,9 @@ static void __split_huge_page(struct pag + } + + ClearPageCompound(head); ++ ++ split_page_owner(head, HPAGE_PMD_ORDER); ++ + /* See comment in __split_huge_page_tail() */ + if (PageAnon(head)) { + /* Additional pin to radix tree of swap cache */ diff --git a/queue-4.14/series b/queue-4.14/series index 6ecaa0ec32c..bd2d850872d 100644 --- a/queue-4.14/series +++ b/queue-4.14/series @@ -54,3 +54,4 @@ dm-zoned-improve-error-handling-in-reclaim.patch dm-zoned-improve-error-handling-in-i-o-map-code.patch dm-zoned-properly-handle-backing-device-failure.patch genirq-properly-pair-kobject_del-with-kobject_add.patch +mm-page_owner-handle-thp-splits-correctly.patch