[Crash-utility] [PATCH 15/16] MIPS64: Add 'help -m/M' command support
Youling Tang
tangyouling at loongson.cn
Wed Mar 10 09:22:40 UTC 2021
On 03/10/2021 09:24 AM, HAGIO KAZUHITO(萩尾 一仁) wrote:
> -----Original Message-----
>> Add mips64_dump_machdep_table() implementation, display machdep_table.
>>
>> Signed-off-by: Huacai Chen <chenhuacai at loongson.cn>
>> Signed-off-by: Youling Tang <tangyouling at loongson.cn>
>> ---
>> mips64.c | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>> 1 file changed, 61 insertions(+)
>>
>> diff --git a/mips64.c b/mips64.c
>> index d8a5a0a..843983a 100644
>> --- a/mips64.c
>> +++ b/mips64.c
>> @@ -1127,9 +1127,70 @@ mips64_is_task_addr(ulong task)
>> return (IS_KVADDR(task) && ALIGNED_STACK_OFFSET(task) == 0);
>> }
>>
>> +/*
>> + * "help -m/M" command output
>> + */
>> void
>> mips64_dump_machdep_table(ulong arg)
>> {
>> + int others = 0;
>> +
>> + fprintf(fp, " flags: %lx (", machdep->flags);
>> + if (machdep->flags & KSYMS_START)
>> + fprintf(fp, "%sKSYMS_START", others++ ? "|" : "");
>> + fprintf(fp, ")\n");
>> +
>> + fprintf(fp, " kvbase: %lx\n", machdep->kvbase);
>> + fprintf(fp, " identity_map_base: %lx\n", machdep->identity_map_base);
>> + fprintf(fp, " pagesize: %d\n", machdep->pagesize);
>> + fprintf(fp, " pageshift: %d\n", machdep->pageshift);
>> + fprintf(fp, " pagemask: %llx\n", machdep->pagemask);
>> + fprintf(fp, " pageoffset: %lx\n", machdep->pageoffset);
>> + fprintf(fp, " pgdir_shift: %d\n", PGDIR_SHIFT);
>> + fprintf(fp, " ptrs_per_pgd: %lu\n", PTRS_PER_PGD);
>> + fprintf(fp, " ptrs_per_pte: %ld\n", PTRS_PER_PTE);
>> + fprintf(fp, " stacksize: %ld\n", machdep->stacksize);
>> + fprintf(fp, " hz: %d\n", machdep->hz);
>> + fprintf(fp, " memsize: %ld (0x%lx)\n",
>> + machdep->memsize, machdep->memsize);
>> + fprintf(fp, " bits: %d\n", machdep->bits);
>> + fprintf(fp, " nr_irqs: %d\n", machdep->nr_irqs);
> Is this set?
>
>> + fprintf(fp, " eframe_search: mips64_eframe_search()\n");
> This is not found.
>
>> + fprintf(fp, " back_trace: mips64_back_trace_cmd()\n");
>> + fprintf(fp, " processor_speed: mips64_processor_speed()\n");
>> + fprintf(fp, " uvtop: mips64_uvtop()\n");
>> + fprintf(fp, " kvtop: mips64_kvtop()\n");
>> + fprintf(fp, " get_task_pgd: mips64_get_task_pgd()\n");
> This is not found.
>
>> + fprintf(fp, " dump_irq: generic_dump_irq()\n");
>> + fprintf(fp, " show_interrupts: generic_show_interrupts()\n");
>> + fprintf(fp, " get_irq_affinity: generic_get_irq_affinity()\n");
> Are these set?
>
> If they are set later, I would prefer to display when they are set
> to avoid misunderstanding.
I will temporarily remove the above unset or not found. The corresponding
additions will be made in the specific settings in the future.
Thanks,
Youling
> Thanks,
> Kazu
>
>> + fprintf(fp, " get_stack_frame: mips64_get_stack_frame()\n");
>> + fprintf(fp, " get_stackbase: generic_get_stackbase()\n");
>> + fprintf(fp, " get_stacktop: generic_get_stacktop()\n");
>> + fprintf(fp, " translate_pte: mips64_translate_pte()\n");
>> + fprintf(fp, " memory_size: generic_memory_size()\n");
>> + fprintf(fp, " vmalloc_start: mips64_vmalloc_start()\n");
>> + fprintf(fp, " is_task_addr: mips64_is_task_addr()\n");
>> + fprintf(fp, " verify_symbol: mips64_verify_symbol()\n");
>> + fprintf(fp, " dis_filter: generic_dis_filter()\n");
>> + fprintf(fp, " cmd_mach: mips64_cmd_mach()\n");
>> + fprintf(fp, " get_smp_cpus: mips64_get_smp_cpus()\n");
>> + fprintf(fp, " is_kvaddr: generic_is_kvaddr()\n");
>> + fprintf(fp, " is_uvaddr: generic_is_uvaddr()\n");
>> + fprintf(fp, " verify_paddr: generic_verify_paddr()\n");
>> + fprintf(fp, " init_kernel_pgd: NULL\n");
>> + fprintf(fp, " value_to_symbol: generic_machdep_value_to_symbol()\n");
>> + fprintf(fp, " line_number_hooks: NULL\n");
>> + fprintf(fp, " last_pgd_read: %lx\n", machdep->last_pgd_read);
>> + fprintf(fp, " last_pmd_read: %lx\n", machdep->last_pmd_read);
>> + fprintf(fp, " last_ptbl_read: %lx\n", machdep->last_ptbl_read);
>> + fprintf(fp, " pgd: %lx\n", (ulong)machdep->pgd);
>> + fprintf(fp, " pmd: %lx\n", (ulong)machdep->pmd);
>> + fprintf(fp, " ptbl: %lx\n", (ulong)machdep->ptbl);
>> + fprintf(fp, " section_size_bits: %ld\n", machdep->section_size_bits);
>> + fprintf(fp, " max_physmem_bits: %ld\n", machdep->max_physmem_bits);
>> + fprintf(fp, " sections_per_root: %ld\n", machdep->sections_per_root);
>> + fprintf(fp, " machspec: %lx\n", (ulong)machdep->machspec);
>> }
>>
>> static void
>> --
>> 2.1.0
More information about the Crash-utility
mailing list