[Crash-utility] [PATCH v2] Fix kmem failing to print task context when address is vmalloced stack
Tao Liu
ltao at redhat.com
Mon Sep 5 07:16:41 UTC 2022
Hi Kazu,
On Fri, Sep 2, 2022 at 9:30 AM HAGIO KAZUHITO(萩尾 一仁) <k-hagio-ab at nec.com> wrote:
>
> On 2022/09/01 17:15, Tao Liu wrote:
>
> >>> When kernel enabled CONFIG_VMAP_STACK, stack can be allocated to
> >>> vmalloced area. Currently crash didn't handle the case, as a result,
> >>> kmem will not print the task context as expected. This patch fix the
> >>> bug by checking if the address is a vmalloced stack first.
> >>>
> >>> Before:
> >>> crash> kmem ffffb7efce9bbe28
> >>> VMAP_AREA VM_STRUCT ADDRESS RANGE SIZE
> >>> ffff94eb9102c640 ffff94eb9102b140 ffffb7efce9b8000 - ffffb7efce9bd000 20480
> >>>
> >>> PAGE PHYSICAL MAPPING INDEX CNT FLAGS
> >>> ffffdd28220dc000 1883700000 0 0 1 50000000000000
> >>>
> >>> After:
> >>> crash> kmem ffffb7efce9bbe28
> >>> PID: 847
> >>> COMMAND: "khungtaskd"
> >>> TASK: ffff94f8038f4000 [THREAD_INFO: ffff94f8038f4000]
> >>> CPU: 72
> >>> STATE: TASK_RUNNING (PANIC)
> >>>
> >>> VMAP_AREA VM_STRUCT ADDRESS RANGE SIZE
> >>> ffff94eb9102c640 ffff94eb9102b140 ffffb7efce9b8000 - ffffb7efce9bd000 20480
> >>>
> >>
> >> I have one question: If the given physical address falls in the vmalloc area, it won't print the task context, is that expected? For example:
> >>
> >
> > Thanks for pointing it out. Hmm... I didn't consider the physical
> > address case as vtop does. I will improve the patch and send v3.
>
> For physical address, a context is not shown also without CONFIG_VMAP_STACK.
>
> crash> kmem ffff9288bc977f00
> PID: 1
> COMMAND: "systemd"
> TASK: ffff9288bc978000 [THREAD_INFO: ffff9288bc974000]
> CPU: 10
> STATE: TASK_INTERRUPTIBLE
>
> PAGE PHYSICAL MAPPING INDEX CNT FLAGS
> ffffd91fc1f25dc0 7c977000 0 0 0 1fffff00000000
>
> crash> kmem 7c977f00
> PAGE PHYSICAL MAPPING INDEX CNT FLAGS
> ffffd91fc1f25dc0 7c977000 0 0 0 1fffff00000000
>
> Some information for virtual address is not shown with physical address,
> it's kind of expected. And we have the ptov command, personally I don't
> think it needs to do.
>
> but if you change this behavior, it might be good in a separate patch.
>
Thanks for the information. I separated the "kmem <physical_address>"
case in v3.
Thanks,
Tao Liu
> Thanks,
> Kazu
More information about the Crash-utility
mailing list