I dump the /sys/kernel/debug/page_tables/kernel by cat, but it seems like it's incomplete because some page entrys do not have RW or ro flag, the dumped info is below. As you can see, in the vmalloc area, the RW flag appears every other one, and so do other areas
My kernel version is 5.15 and run by qemu. How can I get the full information about kernel memory paging?
/sys/kernel/debug/page_tables # cat kernel
...
---[ vmalloc() Area ]---
0xffffc90000000000-0xffffc90000004000 16K RW NX pte
0xffffc90000004000-0xffffc90000005000 4K pte
0xffffc90000005000-0xffffc90000006000 4K RW NX pte
...
0xffffc90000228000-0xffffc9000022c000 16K pte
0xffffc9000022c000-0xffffc90000230000 16K RW NX pte
0xffffc90000230000-0xffffc90000234000 16K pte
0xffffc90000234000-0xffffc90000238000 16K RW NX pte
0xffffc90000238000-0xffffc9000023c000 16K pte
0xffffc9000023c000-0xffffc90000240000 16K RW NX pte
0xffffc90000240000-0xffffc90000244000 16K pte
0xffffc90000244000-0xffffc90000248000 16K RW NX pte
0xffffc90000248000-0xffffc9000024c000 16K pte
0xffffc9000024c000-0xffffc90000250000 16K RW NX pte
0xffffc90000250000-0xffffc90000400000 1728K pte
0xffffc90000400000-0xffffc90040000000 1020M pmd
0xffffc90040000000-0xffffe8ffc0000000 32766G pud
0xffffe8ffc0000000-0xffffe8ffffc00000 1020M pmd
0xffffe8ffffc00000-0xffffe8ffffc03000 12K RW NX pte
0xffffe8ffffc03000-0xffffe8ffffe00000 2036K pte
0xffffe8ffffe00000-0xffffe90000000000 2M pmd
0xffffe90000000000-0xffffea0000000000 1T pgd
---[ Vmemmap ]---
0xffffea0000000000-0xffffea0000200000 2M RW PSE NX pmd
0xffffea0000200000-0xffffea0040000000 1022M pmd
0xffffea0040000000-0xffffea8000000000 511G pud
0xffffea8000000000-0xfffffe0000000000 19968G pgd
---[ CPU entry Area ]---
0xfffffe0000000000-0xfffffe0000002000 8K ro GLB NX pte
0xfffffe0000002000-0xfffffe0000003000 4K RW GLB NX pte
0xfffffe0000003000-0xfffffe0000008000 20K ro GLB NX pte
0xfffffe0000008000-0xfffffe0000009000 4K pte
0xfffffe0000009000-0xfffffe000000b000 8K RW GLB NX pte
0xfffffe000000b000-0xfffffe000000c000 4K pte
0xfffffe000000c000-0xfffffe000000e000 8K RW GLB NX pte
0xfffffe000000e000-0xfffffe000000f000 4K pte
0xfffffe000000f000-0xfffffe0000011000 8K RW GLB NX pte
0xfffffe0000011000-0xfffffe0000012000 4K pte
0xfffffe0000012000-0xfffffe0000014000 8K RW GLB NX pte
0xfffffe0000014000-0xfffffe000001b000 28K pte
0xfffffe000001b000-0xfffffe000001c000 4K RW GLB NX pte
0xfffffe000001c000-0xfffffe000003c000 128K pte
0xfffffe000003c000-0xfffffe0000200000 1808K pte
0xfffffe0000200000-0xfffffe0040000000 1022M pmd
0xfffffe0040000000-0xfffffe8000000000 511G pud
0xfffffe8000000000-0xffffff0000000000 512G pgd
---[ ESPfix Area ]---
0xffffff0000000000-0xffffff4100000000 260G pud
0xffffff4100000000-0xffffff4100004000 16K pte
0xffffff4100004000-0xffffff4100005000 4K ro GLB NX pte
0xffffff4100005000-0xffffff4100014000 60K pte
0xffffff4100014000-0xffffff4100015000 4K ro GLB NX pte
0xffffff4100015000-0xffffff4100024000 60K pte
0xffffff4100024000-0xffffff4100025000 4K ro GLB NX pte
0xffffff4100025000-0xffffff4100034000 60K pte
0xffffff4100034000-0xffffff4100035000 4K ro GLB NX pte
0xffffff4100035000-0xffffff4100044000 60K pte
0xffffff4100044000-0xffffff4100045000 4K ro GLB NX pte
0xffffff4100045000-0xffffff4100054000 60K pte
0xffffff4100054000-0xffffff4100055000 4K ro GLB NX pte
0xffffff4100055000-0xffffff4100064000 60K pte
0xffffff4100064000-0xffffff4100065000 4K ro GLB NX pte
0xffffff4100065000-0xffffff4100074000 60K pte
... 131059 entries skipped ...
---[ EFI Runtime Services ]---
0xffffffef00000000-0xffffffff80000000 66G pud
---[ High Kernel Mapping ]---
0xffffffff80000000-0xffffffff81000000 16M pmd
0xffffffff81000000-0xffffffff82000000 16M ro PSE GLB x pmd
0xffffffff82000000-0xffffffff82004000 16K ro GLB x pte
0xffffffff82004000-0xffffffff82200000 2032K pte
0xffffffff82200000-0xffffffff82600000 4M ro PSE GLB NX pmd
0xffffffff82600000-0xffffffff82738000 1248K ro NX pte
0xffffffff82738000-0xffffffff82800000 800K pte
0xffffffff82800000-0xffffffff82e00000 6M RW PSE NX pmd
0xffffffff82e00000-0xffffffff82fb5000 1748K RW NX pte
0xffffffff82fb5000-0xffffffff837d5000 8320K pte
0xffffffff837d5000-0xffffffff837e3000 56K RW NX pte
0xffffffff837e3000-0xffffffff837e4000 4K ro NX pte
0xffffffff837e4000-0xffffffff83800000 112K RW NX pte
0xffffffff83800000-0xffffffff83c00000 4M RW PSE NX pmd
0xffffffff83c00000-0xffffffffc0000000 964M pmd
---[ Modules ]---
0xffffffffc0000000-0xffffffffc0001000 4K ro x pte
0xffffffffc0001000-0xffffffffc0200000 2044K pte
0xffffffffc0200000-0xffffffffff000000 1006M pmd
---[ End Modules ]---
0xffffffffff000000-0xffffffffff200000 2M pmd
0xffffffffff200000-0xffffffffff57b000 3564K pte
---[ Fixmap Area ]---
0xffffffffff57b000-0xffffffffff5fb000 512K pte
0xffffffffff5fb000-0xffffffffff5fd000 8K RW PWT PCD NX pte
0xffffffffff5fd000-0xffffffffff800000 2060K pte
0xffffffffff800000-0x0000000000000000 8M pmd
Try:
cat /sys/kernel/debug/page_idleorcat /sys/kernel/debug/page_tables.You can also use
gdbto look into the kernel page tables directly.