From: Greg Kroah-Hartman Date: Mon, 26 Aug 2019 16:30:36 +0000 (+0200) Subject: 4.19-stable patches X-Git-Tag: v4.14.141~27 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c191d9629d0fc0c12940feaafd9d0b4b321e27f8;p=thirdparty%2Fkernel%2Fstable-queue.git 4.19-stable patches added patches: mm-page_owner-handle-thp-splits-correctly.patch --- diff --git a/queue-4.19/mm-page_owner-handle-thp-splits-correctly.patch b/queue-4.19/mm-page_owner-handle-thp-splits-correctly.patch new file mode 100644 index 00000000000..67bbed307af --- /dev/null +++ b/queue-4.19/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 +@@ -2477,6 +2478,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.19/series b/queue-4.19/series index 978dd2b892f..445f35b59f7 100644 --- a/queue-4.19/series +++ b/queue-4.19/series @@ -82,3 +82,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