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(a)redhat.com
 
https://www.redhat.com/mailman/listinfo/crash-utility