aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/report/linux.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/report/linux.go')
-rw-r--r--pkg/report/linux.go8
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