From: Greg Kroah-Hartman Date: Mon, 30 Jan 2023 05:39:16 +0000 (+0100) Subject: 6.1-stable patches X-Git-Tag: v5.10.166~37 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3e89e19cde65e6a40b4a75341fbe90d481a801ca;p=thirdparty%2Fkernel%2Fstable-queue.git 6.1-stable patches added patches: revert-mm-compaction-fix-set-skip-in-fast_find_migrateblock.patch --- diff --git a/queue-6.1/revert-mm-compaction-fix-set-skip-in-fast_find_migrateblock.patch b/queue-6.1/revert-mm-compaction-fix-set-skip-in-fast_find_migrateblock.patch new file mode 100644 index 00000000000..dfa247810bf --- /dev/null +++ b/queue-6.1/revert-mm-compaction-fix-set-skip-in-fast_find_migrateblock.patch @@ -0,0 +1,61 @@ +From 95e7a450b8190673675836bfef236262ceff084a Mon Sep 17 00:00:00 2001 +From: Vlastimil Babka +Date: Fri, 13 Jan 2023 18:33:45 +0100 +Subject: Revert "mm/compaction: fix set skip in fast_find_migrateblock" + +From: Vlastimil Babka + +commit 95e7a450b8190673675836bfef236262ceff084a upstream. + +This reverts commit 7efc3b7261030da79001c00d92bc3392fd6c664c. + +We have got openSUSE reports (Link 1) for 6.1 kernel with khugepaged +stalling CPU for long periods of time. Investigation of tracepoint data +shows that compaction is stuck in repeating fast_find_migrateblock() +based migrate page isolation, and then fails to migrate all isolated +pages. + +Commit 7efc3b726103 ("mm/compaction: fix set skip in fast_find_migrateblock") +was suspected as it was merged in 6.1 and in theory can indeed remove a +termination condition for fast_find_migrateblock() under certain +conditions, as it removes a place that always marks a scanned pageblock +from being re-scanned. There are other such places, but those can be +skipped under certain conditions, which seems to match the tracepoint +data. + +Testing of revert also appears to have resolved the issue, thus revert +the commit until a more robust solution for the original problem is +developed. + +It's also likely this will fix qemu stalls with 6.1 kernel reported in +Link 2, but that is not yet confirmed. + +Link: https://bugzilla.suse.com/show_bug.cgi?id=1206848 +Link: https://lore.kernel.org/kvm/b8017e09-f336-3035-8344-c549086c2340@kernel.org/ +Link: https://lore.kernel.org/lkml/20230125134434.18017-1-mgorman@techsingularity.net/ +Fixes: 7efc3b726103 ("mm/compaction: fix set skip in fast_find_migrateblock") +Cc: +Tested-by: Pedro Falcato +Acked-by: Mel Gorman +Signed-off-by: Vlastimil Babka +Signed-off-by: Linus Torvalds +Signed-off-by: Greg Kroah-Hartman +--- + mm/compaction.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/mm/compaction.c b/mm/compaction.c +index ca1603524bbe..8238e83385a7 100644 +--- a/mm/compaction.c ++++ b/mm/compaction.c +@@ -1839,6 +1839,7 @@ static unsigned long fast_find_migrateblock(struct compact_control *cc) + pfn = cc->zone->zone_start_pfn; + cc->fast_search_fail = 0; + found_block = true; ++ set_pageblock_skip(freepage); + break; + } + } +-- +2.39.1 + diff --git a/queue-6.1/series b/queue-6.1/series index 99eb6c98fc3..28d7aa14227 100644 --- a/queue-6.1/series +++ b/queue-6.1/series @@ -300,3 +300,4 @@ block-ublk-move-ublk_chr_class-destroying-after-devi.patch treewide-fix-up-files-incorrectly-marked-executable.patch tools-gpio-fix-c-option-of-gpio-event-mon.patch fix-up-more-non-executable-files-marked-executable.patch +revert-mm-compaction-fix-set-skip-in-fast_find_migrateblock.patch