Hi Austin,

LGTM, so ack.

Thanks,
Tao Liu

On Fri, Aug 29, 2025 at 2:18 PM Austin Kim <[email protected]> wrote:
>
> Currently, 'vtop' command does not include 'PAGE DIRECTORY' information for
> RISC-V-based vmcores. Since 'PAGE DIRECTORY' is used as the root page table,
> we need this information. Note that Arm64, Arm32 and x86 vmcore shows
> 'PAGE DIRECTORY' for 'vtop' command.
>
> (before)
> crash> vtop 0xffffffff80d8e1e0
> VIRTUAL           PHYSICAL
> ffffffff80d8e1e0  40f8e1e0
>
>   PGD: ffffffff81c4fff0 => 4fffe801
>   PMD: 000000013fffa000 => 00000000103800eb
>   PTE: 40e00000 => b35030414c583
>  PAGE: 002cd40c10531000
>
>      PTE          PHYSICAL     FLAGS
> b35030414c583  2cd40c10531000  (PRESENT|READ|DIRTY|SOFT)
>
> (after)
> crash> vtop 0xffffffff80d8e1e0
> VIRTUAL           PHYSICAL
> ffffffff80d8e1e0  40f8e1e0
>
> PAGE DIRECTORY: ffffffff81c4f000
>   PGD: ffffffff81c4fff0 => 4fffe801
>   PMD: 000000013fffa000 => 00000000103800eb
>   PTE: 40e00000 => b35030414c583
>  PAGE: 002cd40c10531000
>
>      PTE          PHYSICAL     FLAGS
> b35030414c583  2cd40c10531000  (PRESENT|READ|DIRTY|SOFT)
>
> Signed-off-by: Austin Kim <[email protected]>
> ---
>  riscv64.c | 9 +++++++++
>  1 file changed, 9 insertions(+)
>
> diff --git a/riscv64.c b/riscv64.c
> index 073ebb9..ef5c41d 100644
> --- a/riscv64.c
> +++ b/riscv64.c
> @@ -634,6 +634,9 @@ riscv64_vtop_3level_4k(ulong *pgd, ulong vaddr, 
> physaddr_t *paddr, int verbose)
>         ulong pte_val, pte_pfn;
>         ulong pt_phys;
>
> +       if (verbose)
> +               fprintf(fp, "PAGE DIRECTORY: %lx\n", (ulong)pgd);
> +
>         /* PGD */
>         pgd_ptr = pgd + pgd_index_l3_4k(vaddr);
>         FILL_PGD(pgd, KVADDR, PAGESIZE());
> @@ -1213,6 +1216,9 @@ riscv64_vtop_4level_4k(ulong *pgd, ulong vaddr, 
> physaddr_t *paddr, int verbose)
>         ulong pte_val, pte_pfn;
>         ulong pt_phys;
>
> +       if (verbose)
> +               fprintf(fp, "PAGE DIRECTORY: %lx\n", (ulong)pgd);
> +
>         /* PGD */
>         pgd_ptr = pgd + pgd_index_l4_4k(vaddr);
>         FILL_PGD(pgd, KVADDR, PAGESIZE());
> @@ -1289,6 +1295,9 @@ riscv64_vtop_5level_4k(ulong *pgd, ulong vaddr, 
> physaddr_t *paddr, int verbose)
>         ulong pte_val, pte_pfn;
>         ulong pt_phys;
>
> +       if (verbose)
> +               fprintf(fp, "PAGE DIRECTORY: %lx\n", (ulong)pgd);
> +
>         /* PGD */
>         pgd_ptr = pgd + pgd_index_l5_4k(vaddr);
>         FILL_PGD(pgd, KVADDR, PAGESIZE());
> --
> 2.34.1
> --
> Crash-utility mailing list -- [email protected]
> To unsubscribe send an email to [email protected]
> https://${domain_name}/admin/lists/devel.lists.crash-utility.osci.io/
> Contribution Guidelines: https://github.com/crash-utility/crash/wiki
--
Crash-utility mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://${domain_name}/admin/lists/devel.lists.crash-utility.osci.io/
Contribution Guidelines: https://github.com/crash-utility/crash/wiki

Reply via email to