Re: [PATCH] scripts/decode_stacktrace: Accept dash/underscore in modules

From: Konstantin Khlebnikov
Date: Mon Jun 03 2019 - 03:54:53 EST


On 31.05.2019 23:59, Evan Green wrote:
The manpage for modprobe mentions that dashes and underscores are
treated interchangeably in module names. The stack trace dumps seem
to print module names with underscores. Use bash to replace _ with
the pattern [-_] so that file names with dashes or underscores can be
found.

For example, this line:
[ 27.919759] hda_widget_sysfs_init+0x2b8/0x3a5 [snd_hda_core]

should find a module named snd-hda-core.ko.

Signed-off-by: Evan Green <evgreen@xxxxxxxxxxxx>

Acked-by: Konstantin Khlebnikov <khlebnikov@xxxxxxxxxxxxxx>

---

Note: This should apply atop linux-next.

Thanks to Doug for showing me the bash string substitution magic.

---
scripts/decode_stacktrace.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/decode_stacktrace.sh b/scripts/decode_stacktrace.sh
index fa704f17275e..13e5fbafdf2f 100755
--- a/scripts/decode_stacktrace.sh
+++ b/scripts/decode_stacktrace.sh
@@ -28,7 +28,7 @@ parse_symbol() {
local objfile=${modcache[$module]}
else
[[ $modpath == "" ]] && return
- local objfile=$(find "$modpath" -name "$module.ko*" -print -quit)
+ local objfile=$(find "$modpath" -name "${module//_/[-_]}.ko*" -print -quit)
[[ $objfile == "" ]] && return
modcache[$module]=$objfile
fi