s390/mm: add cond_resched call to kernel page table dumper
authorHeiko Carstens <heiko.carstens@de.ibm.com>
Mon, 13 Feb 2017 14:20:18 +0000 (15:20 +0100)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Fri, 17 Feb 2017 06:41:07 +0000 (07:41 +0100)
Walking kernel page tables within the kernel page table dumper may
potentially take a lot of time. This may lead to soft lockup warning
messages.
To avoid this add a cond_resched call for each pgd_level iteration.

This is the same as "x86/mm/ptdump: Fix soft lockup in page table
walker" for x86.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/mm/dump_pagetables.c

index 145a0cc..1b553d8 100644 (file)
@@ -1,5 +1,6 @@
 #include <linux/seq_file.h>
 #include <linux/debugfs.h>
+#include <linux/sched.h>
 #include <linux/mm.h>
 #include <asm/sections.h>
 #include <asm/pgtable.h>
@@ -187,6 +188,7 @@ static void walk_pgd_level(struct seq_file *m)
                else
                        note_page(m, &st, _PAGE_INVALID, 1);
                addr += PGDIR_SIZE;
+               cond_resched();
        }
        /* Flush out the last page */
        st.current_address = max_addr;