Sean Fu wrote on Thu, Oct 11, 2018:
Your code is different from mine. The following is from my task.c:
436 if (VALID_SIZE(task_union) && (SIZE(task_union) != STACKSIZE())) {
437 error(WARNING, "\nnon-standard stack size: %ld\n",
438 len = SIZE(task_union));
439 machdep->stacksize = len;
440 } else if (VALID_SIZE(thread_union) &&
441 ((len = SIZE(thread_union)) != STACKSIZE()))
442 machdep->stacksize = len;
443
444 MEMBER_OFFSET_INIT(pid_namespace_idr, "pid_namespace",
"idr");
445 MEMBER_OFFSET_INIT(idr_idr_rt, "idr", "idr_rt");
My code repo:
sean@linux-zmni:~/work/source/upstream/crash> git remote -v
origin
https://github.com/crash-utility/crash.git (fetch)
origin
https://github.com/crash-utility/crash.git (push)
What's your crash version?
Your checkout is a bit old, the extra check was added back in april in
this commit:
commit 6088a29f7e4ad7160e757679827db63ea41553df
Author: Dave Anderson <anderson(a)redhat.com>
Date: Thu Apr 5 11:07:59 2018 -0400
Fix for the "bt" command on 4.16 and later kernels size in which the
"thread_union" data structure is not contained in the vmlinux file's
debuginfo data. Without the patch, the kernel stack size is not
calculated correctly, and defaults to 8K. As a result "bt" fails
with the message "bt: invalid RSP: <address> bt->stackbase/stacktop:
<address>/<address> cpu: <number>".
(efault(a)gmx.de)
which is present in releases since 7.2.2 according to `git tag
--contains`, but development should probably always be done with an
updated tree
--
Domnique