diff options
Diffstat (limited to 'pkg/report/linux.go')
| -rw-r--r-- | pkg/report/linux.go | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/pkg/report/linux.go b/pkg/report/linux.go index b24d9ae42..d66350bd2 100644 --- a/pkg/report/linux.go +++ b/pkg/report/linux.go @@ -590,6 +590,13 @@ func linuxStallFrameExtractor(frames []string) (string, string) { prev := frames[0] for _, frame := range frames { if matchesAny([]byte(frame), linuxStallAnchorFrames) { + if strings.HasPrefix(frame, "on_each_cpu") { + // In this case we want this function rather than the previous one + // (there can be several variations on the next one). + // This one can also be called "on_each_cpu_cond", + // normalize it to "on_each_cpu". + prev = "on_each_cpu" + } for _, prefix := range []string{ "__x64_", "SYSC_", @@ -716,6 +723,7 @@ var linuxStallAnchorFrames = []*regexp.Regexp{ compile("__fput"), compile("task_work_run"), compile("exit_to_usermode"), + compile("on_each_cpu"), } // nolint: lll |
