[Crash-utility] bt command does not show stack traces of some CPUs.

Dave Anderson anderson at redhat.com
Mon Nov 21 13:52:59 UTC 2005


Takao Indoh wrote:

> Hi, I found a problem on crash-4.0-2.12.
>
> Summary:
>     bt command does not show stack traces of some CPUs.
>
> Condition:
>    This problem happens only on ia64 machine.
>    There are two conditions to reproduce this problem.
>     1) Diskdump is executed via OS_INIT.
>     2) The machine has more than 8 CPUs.
>
> Details:
>    When I executed bt command for vmcore which was created
>    on the 32 CPU machine, bt didn't show stack traces of some CPU.
>    Please see attached file(bt_failed.txt). Stack traces from CPU0 to
>    CPU7 are showed normally, but stack traces from CPU8 to CPU31 are not.
>    (Please don't worry about a message "unwind: bsp (xxxxxxxxx) out of
>     range". This is a problem of our platform.)
>
> Cause:
>    I found a bug in ia64.c.
>
> 2679    ms->ia64_init_stack_size = get_array_length("ia64_init_stack",
> 2680            NULL, 0);
>
>    get_array_length() gets the length of stack of OS_INIT, and the
>    length is stored at ms->ia64_init_stack_size. However, the value
>    which  get_array_length gives is different from actual stack length
>    because "ia64_init_stack" is declared like this:
>
> u64 ia64_init_stack[NR_CPUS*KERNEL_STACK_SIZE/8];
>
>    Therefore, correct length of a stack is this:
>         get_array_length("ia64_init_stack", NULL, 0) * sizeof(u64)
>
>    I don't know how to fix, but it seems that attached patch
>    (ia64.c.patch) corrects this problem.
>    Another attached patch(test.patch) also seems to fix the problem,
>    but I don't know which is better.
>

Hello Takao,

Welcome to the list!

I prefer your second "test.patch" because it seems to be a much cleaner
way to get the size from gdb.

Thanks for tracking this down,
  Dave


>
> Regards,
> Takao Indoh
>
>   ------------------------------------------------------------------------------------------------------------------------
>                     Name: bt_failed.txt
>    bt_failed.txt    Type: Plain Text (text/plain)
>                 Encoding: base64
>
>                           Name: ia64.c.patch
>    ia64.c.patch           Type: unspecified type (application/octet-stream)
>                       Encoding: base64
>                Download Status: Not downloaded with message
>
>                         Name: test.patch
>    test.patch           Type: unspecified type (application/octet-stream)
>                     Encoding: base64
>              Download Status: Not downloaded with message
>
>   ------------------------------------------------------------------------------------------------------------------------
> --
> Crash-utility mailing list
> Crash-utility at redhat.com
> https://www.redhat.com/mailman/listinfo/crash-utility




More information about the Crash-utility mailing list