Dumped kernel page table info missing page flag like RW or ro

145 Views Asked by At

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

1

There are 1 best solutions below

7
Kevin C On

Try:

cat /sys/kernel/debug/page_idle or cat /sys/kernel/debug/page_tables.

You can also use gdb to look into the kernel page tables directly.