On Mon, 3 Jun 2024 at 09:46, Philippe Mathieu-Daudé <phi...@linaro.org> wrote: > > On 31/5/24 16:11, Dr. David Alan Gilbert wrote: > > * Don Porter (por...@cs.unc.edu) wrote: > >> The new "info pg" monitor command prints the current page table, > >> including virtual address ranges, flag bits, and snippets of physical > >> page numbers. Completely filled regions of the page table with > >> compatible flags are "folded", with the result that the complete > >> output for a freshly booted x86-64 Linux VM can fit in a single > >> terminal window. The output looks like this: > >> > >> VPN range Entry Flags Physical page > >> [7f0000000-7f0000000] PML4[0fe] ---DA--UWP > >> [7f28c0000-7f28fffff] PDP[0a3] ---DA--UWP > >> [7f28c4600-7f28c47ff] PDE[023] ---DA--UWP > >> [7f28c4655-7f28c4656] PTE[055-056] X--D---U-P 0000007f14-0000007f15 > >> [7f28c465b-7f28c465b] PTE[05b] ----A--U-P 0000001cfc > >> ... > >> [ff8000000-ff8000000] PML4[1ff] ---DA--UWP > >> [ffff80000-ffffbffff] PDP[1fe] ---DA---WP > >> [ffff81000-ffff81dff] PDE[008-00e] -GSDA---WP 0000001000-0000001dff > >> [ffffc0000-fffffffff] PDP[1ff] ---DA--UWP > >> [ffffff400-ffffff5ff] PDE[1fa] ---DA--UWP > >> [ffffff5fb-ffffff5fc] PTE[1fb-1fc] XG-DACT-WP 00000fec00 00000fee00 > >> [ffffff600-ffffff7ff] PDE[1fb] ---DA--UWP > >> [ffffff600-ffffff600] PTE[000] -G-DA--U-P 0000001467 > >> > >> This draws heavy inspiration from Austin Clements' original patch. > >> > >> This also adds a generic page table walker, which other monitor > >> and execution commands will be migrated to in subsequent patches. > >> > >> Signed-off-by: Don Porter <por...@cs.unc.edu> > >> --- > >> hmp-commands-info.hx | 26 ++ > >> include/monitor/hmp-target.h | 1 + > >> target/i386/arch_memory_mapping.c | 486 +++++++++++++++++++++++++++++- > >> target/i386/cpu.h | 16 + > >> target/i386/monitor.c | 380 +++++++++++++++++++++++ > >> 5 files changed, 908 insertions(+), 1 deletion(-) > >> > >> diff --git a/hmp-commands-info.hx b/hmp-commands-info.hx > >> index 20a9835ea8..918b82015c 100644 > >> --- a/hmp-commands-info.hx > >> +++ b/hmp-commands-info.hx > >> @@ -237,6 +237,32 @@ ERST > >> .cmd = hmp_info_mtree, > >> }, > >> > >> +#if defined(TARGET_I386) > > FYI in order to unify all QEMU system binaries as a single > one, we are trying to remove target-specific bits in monitor. > > How 'info pg' should work in a binary supporting heterogeneous > emulation?
Like the existing "print page table" monitor commands, this will need to change to be an indirect via a CPU method, rather than a command directly implemented as a command in the target/i386 code. -- PMM