Nice ! Balbir Singh <bsinghar...@gmail.com> writes:
> It would be nice to be able to dump page tables in a > particular context > > Example use cases > > Dumping PTE contents to see the keys (useful for debugging) > > c0000000ba48c880 c0000000bab438b0 2677 2675 T 2 protection_keys What is that ^ ? > 0:mon> ds c0000000ba48c880 0x7ffff7f70000 > translating tsk c0000000ba48c880, addr 7ffff7f70000 > G: 0xb95b6400 U: 0xb6334000 M: 0xb6543000 PA: 0x012c0000, PTE: > 0xd4800000012c0504 Without reading the code I don't grok what G/U/M mean. Feel free to use more than one line of output :) > Dumping vmalloc space > > 0:mon> ds 0 d000000000000000 I suspect we will want to do that a lot. So I'd rather the arguments were reversed, and the second (task) can be omitted. So: 0:mon> ds x == translate x via init_mm 0:mon> ds x y == translate x via &y->mm I guess it's easier for folks to find a task rather than an mm directly? Otherwise it could take an mm not a task. > translating tsk (null), addr d000000000000000 We should special case that to say "using kernel page tables" or similar. > G: 0x3d450400 U: 0xbc184000 M: 0x3d460000 PA: 0x7e010000, PTE: > 0xc08000007e01018e > I did not replicate the complex code of dump_pagetable and have no support > for bolted linear mapping, thats why I've called it software pagetable > dumping support. Not sure about that naming. On hash it makes sense, but not on radix or on other platforms. Maybe 'dv' for dump Virtual address ? It doesn't dump a PTE, it tries to translate an address into a PTE. cheers