diff options
author | Andrey Ryabinin <aryabinin@virtuozzo.com> | 2017-02-14 05:08:39 -0500 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2017-02-16 13:53:25 -0500 |
commit | 025205f8f30c6ab52b69bf34fb359ac80360fefd (patch) | |
tree | fe02d58a83cf2a27448efcef198e13628209157b | |
parent | 243b72aae28ca1032284028323bb81c9235b15c9 (diff) |
x86/mm/ptdump: Add address marker for KASAN shadow region
Annotate the KASAN shadow with address markers in page table
dump output:
$ cat /sys/kernel/debug/kernel_page_tables
...
---[ Vmemmap ]---
0xffffea0000000000-0xffffea0003000000 48M RW PSE GLB NX pmd
0xffffea0003000000-0xffffea0004000000 16M pmd
0xffffea0004000000-0xffffea0005000000 16M RW PSE GLB NX pmd
0xffffea0005000000-0xffffea0040000000 944M pmd
0xffffea0040000000-0xffffea8000000000 511G pud
0xffffea8000000000-0xffffec0000000000 1536G pgd
---[ KASAN shadow ]---
0xffffec0000000000-0xffffed0000000000 1T ro GLB NX pte
0xffffed0000000000-0xffffed0018000000 384M RW PSE GLB NX pmd
0xffffed0018000000-0xffffed0020000000 128M pmd
0xffffed0020000000-0xffffed0028200000 130M RW PSE GLB NX pmd
0xffffed0028200000-0xffffed0040000000 382M pmd
0xffffed0040000000-0xffffed8000000000 511G pud
0xffffed8000000000-0xfffff50000000000 7680G pgd
0xfffff50000000000-0xfffffbfff0000000 7339776M ro GLB NX pte
0xfffffbfff0000000-0xfffffbfff0200000 2M pmd
0xfffffbfff0200000-0xfffffbfff0a00000 8M RW PSE GLB NX pmd
0xfffffbfff0a00000-0xfffffbffffe00000 244M pmd
0xfffffbffffe00000-0xfffffc0000000000 2M ro GLB NX pte
---[ KASAN shadow end ]---
0xfffffc0000000000-0xffffff0000000000 3T pgd
---[ ESPfix Area ]---
...
Signed-off-by: Andrey Ryabinin <aryabinin@virtuozzo.com>
Reviewed-by: Alexander Potapenko <glider@google.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: kasan-dev@googlegroups.com
Cc: Tobias Regnery <tobias.regnery@gmail.com>
Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>
Cc: Dmitry Vyukov <dvyukov@google.com>
Link: http://lkml.kernel.org/r/20170214100839.17186-2-aryabinin@virtuozzo.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-rw-r--r-- | arch/x86/mm/dump_pagetables.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/x86/mm/dump_pagetables.c b/arch/x86/mm/dump_pagetables.c index 08135341798c..58b5bee7ea27 100644 --- a/arch/x86/mm/dump_pagetables.c +++ b/arch/x86/mm/dump_pagetables.c | |||
@@ -18,6 +18,7 @@ | |||
18 | #include <linux/sched.h> | 18 | #include <linux/sched.h> |
19 | #include <linux/seq_file.h> | 19 | #include <linux/seq_file.h> |
20 | 20 | ||
21 | #include <asm/kasan.h> | ||
21 | #include <asm/pgtable.h> | 22 | #include <asm/pgtable.h> |
22 | 23 | ||
23 | /* | 24 | /* |
@@ -51,6 +52,10 @@ enum address_markers_idx { | |||
51 | LOW_KERNEL_NR, | 52 | LOW_KERNEL_NR, |
52 | VMALLOC_START_NR, | 53 | VMALLOC_START_NR, |
53 | VMEMMAP_START_NR, | 54 | VMEMMAP_START_NR, |
55 | #ifdef CONFIG_KASAN | ||
56 | KASAN_SHADOW_START_NR, | ||
57 | KASAN_SHADOW_END_NR, | ||
58 | #endif | ||
54 | # ifdef CONFIG_X86_ESPFIX64 | 59 | # ifdef CONFIG_X86_ESPFIX64 |
55 | ESPFIX_START_NR, | 60 | ESPFIX_START_NR, |
56 | # endif | 61 | # endif |
@@ -76,6 +81,10 @@ static struct addr_marker address_markers[] = { | |||
76 | { 0/* PAGE_OFFSET */, "Low Kernel Mapping" }, | 81 | { 0/* PAGE_OFFSET */, "Low Kernel Mapping" }, |
77 | { 0/* VMALLOC_START */, "vmalloc() Area" }, | 82 | { 0/* VMALLOC_START */, "vmalloc() Area" }, |
78 | { 0/* VMEMMAP_START */, "Vmemmap" }, | 83 | { 0/* VMEMMAP_START */, "Vmemmap" }, |
84 | #ifdef CONFIG_KASAN | ||
85 | { KASAN_SHADOW_START, "KASAN shadow" }, | ||
86 | { KASAN_SHADOW_END, "KASAN shadow end" }, | ||
87 | #endif | ||
79 | # ifdef CONFIG_X86_ESPFIX64 | 88 | # ifdef CONFIG_X86_ESPFIX64 |
80 | { ESPFIX_BASE_ADDR, "ESPfix Area", 16 }, | 89 | { ESPFIX_BASE_ADDR, "ESPfix Area", 16 }, |
81 | # endif | 90 | # endif |