Messages in this thread | | | Subject | Re: Linux 5.8-rc1 BUG unable to handle page fault (snd_pcm) | From | Shuah Khan <> | Date | Mon, 15 Jun 2020 15:18:54 -0600 |
| |
On 6/15/20 2:55 PM, Linus Torvalds wrote: > On Mon, Jun 15, 2020 at 1:41 PM Shuah Khan <skhan@linuxfoundation.org> wrote: >> >> I have CONFIG_DEBUG_INFO enabled. Ran the stack trace through >> scripts/decode_stacktrace.sh > > Thanks. It looks like it isn't needed and people already know what the cause is. > > Also, sadly the stack trace decoding didn't end up as useful as it > could have been because it looks like it doesn't know how to do the > nice address lookups for modules. > > So this: > >> [ 15.341237] RIP: 0010:__memset (arch/x86/lib/memset_64.S:41) > > gets nicely pinpointed to the source, but the most critical part of > the call trace is in modules, and there we end up having just > >> [ 15.341259] Call Trace: >> [ 15.341267] ? snd_pcm_hw_params+0x3ca/0x440 snd_pcm >> [ 15.341272] snd_pcm_common_ioctl+0x173/0xf20 snd_pcm >> [ 15.341277] ? snd_ctl_ioctl+0x1c5/0x710 snd >> [ 15.341282] snd_pcm_ioctl+0x27/0x40 snd_pcm > > without then looking at the debug info in the snd_pcm module to figure that out. > > Then when the call trace gets back to non-module code, it looks good again: > >> [ 15.341285] ksys_ioctl (fs/ioctl.c:49 /home/shuah/lkml/linux_5.8/fs/ioctl.c:753) >> [ 15.341288] __x64_sys_ioctl (fs/ioctl.c:760) >> [ 15.341291] do_syscall_64 (arch/x86/entry/common.c:359) >> [ 15.341294] entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:124) > > with pinpointing to exactly where the calls are. > > I note that Konstantin Khlebnikov did add support to do the module > parts too back in 2016, but it requires people to know to give the > module path too. > > Adding him and Sasha to the participants in case there are ideas on > how to improve on this (and party just because I want to once again > give scripts/decode_stacktrace.sh soem more mention, because a lot of > people seem to be unaware of how useful it can be to make oopses and > traces more readable.. >
Thanks. I usually decode all of this by hand. This script saves a lot of time. Very cool.
Yeah. I should have thought about adding module path. With module path added, I get better results:
[ 15.341267] ? snd_pcm_hw_params (./include/linux/string.h:391 /home/shuah/lkml/linux_5.8/sound/core/pcm_native.c:759) snd_pcm [ 15.341272] snd_pcm_common_ioctl (sound/core/pcm_native.c:792 /home/shuah/lkml/linux_5.8/sound/core/pcm_native.c:3210) snd_pcm [ 15.341277] ? snd_ctl_ioctl+0x1c5/0x710 snd [ 15.341282] snd_pcm_ioctl (sound/core/pcm_native.c:3297) snd_pcm [ 15.341285] ksys_ioctl (fs/ioctl.c:49 /home/shuah/lkml/linux_5.8/fs/ioctl.c:753) [ 15.341288] __x64_sys_ioctl (fs/ioctl.c:760) [ 15.341291] do_syscall_64 (arch/x86/entry/common.c:359) [ 15.341294] entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:124) [ 15.341296] RIP: 0033:0x7fcbaf56137b [ 15.341297] Code: Bad RIP value.
> Maybe even just a warning about lacking a module path when there are > module symbols present? >
It does tell you the usage.
Usage: scripts/decode_stacktrace.sh [vmlinux] [base path] [modulespath]
I would be useful to add a warning.
thanks, -- Shuah
| |