Hi, Tao
Thank you for the update.

On Mon, Sep 19, 2022 at 8:00 PM <crash-utility-requ...@redhat.com> wrote:

> Date: Mon, 19 Sep 2022 17:49:24 +0800
> From: Tao Liu <l...@redhat.com>
> To: crash-utility@redhat.com
> Subject: [Crash-utility] [PATCH v4 4/4] Let kmem print task context
>         with physical address
> Message-ID: <20220919094924.17078-5-l...@redhat.com>
> Content-Type: text/plain; charset="US-ASCII"; x-default=true
>
> With patch [1], kmem <phyaddr> will print task context when
> CONFIG_VMAP_STACK enabled. However when CONFIG_VMAP_STACK disabled,
> kmem <phyaddr> will never print task context, so the behaviour is
> inconsistent.
>
> This patch addresses the issue, to let kmem <phyaddr> can output
> task context when CONFIG_VMAP_STACK disabled.
>
> Before:
>     crash> kmem 16663edfda0
>           PAGE          PHYSICAL      MAPPING       INDEX CNT FLAGS
>     ffffee33998fb7c0 16663edf000                0        0  0
> 6fffff00000000
>
> After:
>     crash> kmem 16663edfda0
>         PID: 19007
>     COMMAND: "bash"
>        TASK: ffff8bb405d320e0  [THREAD_INFO: ffff8bb463edc000]
>         CPU: 59
>       STATE: TASK_RUNNING (SYSRQ)
>
>           PAGE          PHYSICAL      MAPPING       INDEX CNT FLAGS
>     ffffee33998fb7c0 16663edf000                0        0  0
> 6fffff00000000
>
> [1]:
> https://listman.redhat.com/archives/crash-utility/2022-September/010117.html
>
> Signed-off-by: Tao Liu <l...@redhat.com>
> ---
>  memory.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/memory.c b/memory.c
> index eac8262..d0daa58 100644
> --- a/memory.c
> +++ b/memory.c
> @@ -13566,11 +13566,13 @@ kmem_search(struct meminfo *mi)
>         /*
>          *  Check whether it's a current task or stack address.
>          */
> -       if ((mi->memtype == KVADDR) && (task =
> vaddr_in_task_struct(vaddr)) &&
> +       if (((mi->memtype == KVADDR) || (mi->memtype == PHYSADDR)) &&
>

 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
With the following minor changes:
 mi->memtype & (KVADDR|PHYSADDR)

The v4 looks good to me, so: Ack.

Thanks.
Lianbo


> +           (task = vaddr_in_task_struct(vaddr)) &&
>             (tc = task_to_context(task))) {
>                 show_context(tc);
>                 fprintf(fp, "\n");
> -       } else if ((mi->memtype == KVADDR) && (task =
> stkptr_to_task(vaddr)) &&
> +       } else if (((mi->memtype == KVADDR) || (mi->memtype == PHYSADDR))
> &&
>

Ditto.


> +           (task = stkptr_to_task(vaddr)) &&
>             (tc = task_to_context(task))) {
>                 show_context(tc);
>                 fprintf(fp, "\n");
> --
> 2.33.1
>
--
Crash-utility mailing list
Crash-utility@redhat.com
https://listman.redhat.com/mailman/listinfo/crash-utility
Contribution Guidelines: https://github.com/crash-utility/crash/wiki

Reply via email to