For the /sys/kernel/debug/page_tables/ files, rather than outputing a
mostly empty line when a block of memory isn't present just skip the
line. This keeps the output shorter and will help with a future change
switching to using the generic page walk code as we no longer care about
the 'level' that the page table holes are at.

Signed-off-by: Steven Price <steven.pr...@arm.com>
---
 arch/x86/mm/dump_pagetables.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/arch/x86/mm/dump_pagetables.c b/arch/x86/mm/dump_pagetables.c
index ca270fb00805..e2b53db92c34 100644
--- a/arch/x86/mm/dump_pagetables.c
+++ b/arch/x86/mm/dump_pagetables.c
@@ -304,8 +304,8 @@ static void note_page(struct seq_file *m, struct pg_state 
*st,
                /*
                 * Now print the actual finished series
                 */
-               if (!st->marker->max_lines ||
-                   st->lines < st->marker->max_lines) {
+               if ((cur & _PAGE_PRESENT) && (!st->marker->max_lines ||
+                   st->lines < st->marker->max_lines)) {
                        pt_dump_seq_printf(m, st->to_dmesg,
                                           "0x%0*lx-0x%0*lx   ",
                                           width, st->start_address,
@@ -321,7 +321,8 @@ static void note_page(struct seq_file *m, struct pg_state 
*st,
                        printk_prot(m, st->current_prot, st->level,
                                    st->to_dmesg);
                }
-               st->lines++;
+               if (cur & _PAGE_PRESENT)
+                       st->lines++;
 
                /*
                 * We print markers for special areas of address space,
-- 
2.20.1

Reply via email to