mm/madvise: don't forget to leave lazy MMU mode in madvise_cold_or_pageout_pte_range()
authorSergey Senozhatsky <senozhatsky@chromium.org>
Fri, 26 Jan 2024 03:25:48 +0000 (12:25 +0900)
committerAndrew Morton <akpm@linux-foundation.org>
Thu, 8 Feb 2024 05:20:35 +0000 (21:20 -0800)
We need to leave lazy MMU mode before unlocking.

Link: https://lkml.kernel.org/r/20240126032608.355899-1-senozhatsky@chromium.org
Fixes: b2f557a21bc8 ("mm/madvise: add cond_resched() in madvise_cold_or_pageout_pte_range()")
Signed-off-by: Sergey Senozhatsky <senozhatsky@chromium.org>
Cc: Jiexun Wang <wangjiexun@tinylab.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/madvise.c

index 912155a94ed5871c1805f33ec624c7c7c1ee28c8..cfa5e7288261189cb8242e5a0367fe6ffeebca12 100644 (file)
@@ -429,6 +429,7 @@ restart:
                if (++batch_count == SWAP_CLUSTER_MAX) {
                        batch_count = 0;
                        if (need_resched()) {
+                               arch_leave_lazy_mmu_mode();
                                pte_unmap_unlock(start_pte, ptl);
                                cond_resched();
                                goto restart;