aboutsummaryrefslogtreecommitdiffstats
path: root/pkg
diff options
context:
space:
mode:
authorAleksandr Nogikh <nogikh@google.com>2025-04-15 12:35:37 +0200
committerAleksandr Nogikh <nogikh@google.com>2025-04-15 11:22:00 +0000
commitf3bb48197a5f84f23f38057077b3eb80fe4000f9 (patch)
treef8d3c16a206e13c09e83670a66b803a64c608019 /pkg
parent23b969b777238d45d0e061f25dd93fbfaf5ee7bc (diff)
pkg/report: include partially stripped prefixes to alt titles
It will help avoid bug duplication in case of adding new prefixes to strip.
Diffstat (limited to 'pkg')
-rw-r--r--pkg/report/linux.go25
-rw-r--r--pkg/report/report.go143
-rw-r--r--pkg/report/testdata/linux/report/1792
-rw-r--r--pkg/report/testdata/linux/report/2372
-rw-r--r--pkg/report/testdata/linux/report/2642
-rw-r--r--pkg/report/testdata/linux/report/2662
-rw-r--r--pkg/report/testdata/linux/report/2752
-rw-r--r--pkg/report/testdata/linux/report/2782
-rw-r--r--pkg/report/testdata/linux/report/2882
-rw-r--r--pkg/report/testdata/linux/report/2912
-rw-r--r--pkg/report/testdata/linux/report/2922
-rw-r--r--pkg/report/testdata/linux/report/2962
-rw-r--r--pkg/report/testdata/linux/report/2972
-rw-r--r--pkg/report/testdata/linux/report/3002
-rw-r--r--pkg/report/testdata/linux/report/3162
-rw-r--r--pkg/report/testdata/linux/report/3502
-rw-r--r--pkg/report/testdata/linux/report/3782
-rw-r--r--pkg/report/testdata/linux/report/4212
-rw-r--r--pkg/report/testdata/linux/report/4322
-rw-r--r--pkg/report/testdata/linux/report/4332
-rw-r--r--pkg/report/testdata/linux/report/4342
-rw-r--r--pkg/report/testdata/linux/report/4352
-rw-r--r--pkg/report/testdata/linux/report/4372
-rw-r--r--pkg/report/testdata/linux/report/4382
-rw-r--r--pkg/report/testdata/linux/report/4392
-rw-r--r--pkg/report/testdata/linux/report/4422
-rw-r--r--pkg/report/testdata/linux/report/4452
-rw-r--r--pkg/report/testdata/linux/report/5022
-rw-r--r--pkg/report/testdata/linux/report/5032
-rw-r--r--pkg/report/testdata/linux/report/5042
-rw-r--r--pkg/report/testdata/linux/report/5052
-rw-r--r--pkg/report/testdata/linux/report/5062
-rw-r--r--pkg/report/testdata/linux/report/5072
-rw-r--r--pkg/report/testdata/linux/report/5291
-rw-r--r--pkg/report/testdata/linux/report/5492
-rw-r--r--pkg/report/testdata/linux/report/6102
-rw-r--r--pkg/report/testdata/linux/report/6112
-rw-r--r--pkg/report/testdata/linux/report/6221
-rw-r--r--pkg/report/testdata/linux/report/6231
-rw-r--r--pkg/report/testdata/linux/report/652
-rw-r--r--pkg/report/testdata/linux/report/6882
-rw-r--r--pkg/report/testdata/linux/report/751
42 files changed, 204 insertions, 40 deletions
diff --git a/pkg/report/linux.go b/pkg/report/linux.go
index 598543e6b..63236fe41 100644
--- a/pkg/report/linux.go
+++ b/pkg/report/linux.go
@@ -917,7 +917,7 @@ func (ctx *linux) setExecutorInfo(rep *Report) {
rep.Executor = info
}
-func linuxStallFrameExtractor(frames []string) string {
+func linuxStallFrameExtractor(frames []string) (string, int) {
// During rcu stalls and cpu lockups kernel loops in some part of code,
// usually across several functions. When the stall is detected, traceback
// points to a random stack within the looping code. We generally take
@@ -929,22 +929,23 @@ func linuxStallFrameExtractor(frames []string) string {
// However, for highly discriminated functions syscalls like ioctl/read/write/connect
// we take the previous function (e.g. for connect the one that points to exact
// protocol, or for ioctl the one that is related to the device).
- prev := frames[0]
- for _, frame := range frames {
+ prev, prevIdx := frames[0], 0
+ for i, frame := range frames {
if matchesAny([]byte(frame), linuxStallAnchorFrames) {
if strings.Contains(frame, "smp_call_function") {
// In this case we want this function rather than the previous one
// (there can be several variations on the next one).
prev = "smp_call_function"
+ prevIdx = i
}
- return prev
+ return prev, prevIdx
}
- prev = frame
+ prev, prevIdx = frame, i
}
- return ""
+ return "", -1
}
-func linuxHangTaskFrameExtractor(frames []string) string {
+func linuxHangTaskFrameExtractor(frames []string) (string, int) {
// The problem with task hung reports is that they manifest at random victim stacks,
// rather at the root cause stack. E.g. if there is something wrong with RCU subsystem,
// we are getting hangs all over the kernel on all synchronize_* calls.
@@ -959,13 +960,13 @@ func linuxHangTaskFrameExtractor(frames []string) string {
"synchronize_net": synchronizeRCU,
"synchronize_sched": synchronizeRCU,
}
- for _, frame := range frames {
+ for i, frame := range frames {
for anchor, replacement := range anchorFrames {
if strings.Contains(frame, anchor) {
if replacement != "" {
frame = replacement
}
- return frame
+ return frame, i
}
}
}
@@ -973,15 +974,15 @@ func linuxHangTaskFrameExtractor(frames []string) string {
"wait", "synchronize", "context_switch", "__switch_to", "cancel_delayed_work",
"rcu_barrier"}
nextFrame:
- for _, frame := range frames {
+ for i, frame := range frames {
for _, ignore := range skip {
if strings.Contains(frame, ignore) {
continue nextFrame
}
}
- return frame
+ return frame, i
}
- return ""
+ return "", -1
}
var linuxStallAnchorFrames = []*regexp.Regexp{
diff --git a/pkg/report/report.go b/pkg/report/report.go
index d91bf35aa..3277b3b34 100644
--- a/pkg/report/report.go
+++ b/pkg/report/report.go
@@ -449,7 +449,7 @@ type stackFmt struct {
extractor frameExtractor
}
-type frameExtractor func(frames []string) string
+type frameExtractor func(frames []string) (string, int)
var parseStackTrace *regexp.Regexp
@@ -517,24 +517,38 @@ func extractDescription(output []byte, oops *oops, params *stackParams) (
continue
}
}
- var args []interface{}
+ var argPrefix []any
for i := 2; i < len(match); i += 2 {
- args = append(args, string(output[match[i]:match[i+1]]))
+ argPrefix = append(argPrefix, string(output[match[i]:match[i+1]]))
}
+ var frames []extractedFrame
corrupted = ""
if f.stack != nil {
- frames, ok := extractStackFrame(params, f.stack, output[match[0]:])
+ var ok bool
+ frames, ok = extractStackFrame(params, f.stack, output[match[0]:])
if !ok {
corrupted = corruptedNoFrames
}
- for _, frame := range frames {
- args = append(args, frame)
- }
}
+ args := canonicalArgs(argPrefix, frames)
desc = fmt.Sprintf(f.fmt, args...)
for _, alt := range f.alt {
altTitles = append(altTitles, fmt.Sprintf(alt, args...))
}
+
+ // Also consider partially stripped prefixes - these will help us
+ // better deduplicate the reports.
+ argSequences := partiallyStrippedArgs(argPrefix, frames, params)
+ for _, args := range argSequences {
+ altTitle := fmt.Sprintf(f.fmt, args...)
+ if altTitle != desc {
+ altTitles = append(altTitles, altTitle)
+ }
+ for _, alt := range f.alt {
+ altTitles = append(altTitles, fmt.Sprintf(alt, args...))
+ }
+ }
+ altTitles = uniqueStrings(altTitles)
format = f
}
if desc == "" {
@@ -577,21 +591,47 @@ type stackParams struct {
stripFramePrefixes []string
}
-func extractStackFrame(params *stackParams, stack *stackFmt, output []byte) ([]string, bool) {
+func (sp *stackParams) stripFrames(frames []string) []string {
+ var ret []string
+ for _, origFrame := range frames {
+ // Pick the shortest one.
+ frame := origFrame
+ for _, prefix := range sp.stripFramePrefixes {
+ newFrame := strings.TrimPrefix(origFrame, prefix)
+ if len(newFrame) < len(frame) {
+ frame = newFrame
+ }
+ }
+ ret = append(ret, frame)
+ }
+ return ret
+}
+
+type extractedFrame struct {
+ canonical string
+ raw string
+}
+
+func extractStackFrame(params *stackParams, stack *stackFmt, output []byte) ([]extractedFrame, bool) {
skip := append([]string{}, params.skipPatterns...)
skip = append(skip, stack.skip...)
var skipRe *regexp.Regexp
if len(skip) != 0 {
skipRe = regexp.MustCompile(strings.Join(skip, "|"))
}
- extractor := func(frames []string) string {
- if len(frames) == 0 {
- return ""
+ extractor := func(rawFrames []string) extractedFrame {
+ if len(rawFrames) == 0 {
+ return extractedFrame{}
}
+ stripped := params.stripFrames(rawFrames)
if stack.extractor == nil {
- return frames[0]
+ return extractedFrame{stripped[0], rawFrames[0]}
}
- return stack.extractor(frames)
+ frame, idx := stack.extractor(stripped)
+ if frame != "" {
+ return extractedFrame{frame, rawFrames[idx]}
+ }
+ return extractedFrame{}
}
frames, ok := extractStackFrameImpl(params, output, skipRe, stack.parts, extractor)
if ok || len(stack.parts2) == 0 {
@@ -605,20 +645,21 @@ func lines(text []byte) [][]byte {
}
func extractStackFrameImpl(params *stackParams, output []byte, skipRe *regexp.Regexp,
- parts []*regexp.Regexp, extractor frameExtractor) ([]string, bool) {
+ parts []*regexp.Regexp, extractor func([]string) extractedFrame) ([]extractedFrame, bool) {
lines := lines(output)
- var frames, results []string
+ var rawFrames []string
+ var results []extractedFrame
ok := true
numStackTraces := 0
nextPart:
for partIdx := 0; ; partIdx++ {
if partIdx == len(parts) || parts[partIdx] == parseStackTrace && numStackTraces > 0 {
- keyFrame := extractor(frames)
- if keyFrame == "" {
- keyFrame, ok = "corrupted", false
+ keyFrame := extractor(rawFrames)
+ if keyFrame.canonical == "" {
+ keyFrame, ok = extractedFrame{"corrupted", "corrupted"}, false
}
results = append(results, keyFrame)
- frames = nil
+ rawFrames = nil
}
if partIdx == len(parts) {
break
@@ -640,7 +681,7 @@ nextPart:
if partIdx != len(parts)-1 {
match := parts[partIdx+1].FindSubmatch(ln)
if match != nil {
- frames = appendStackFrame(frames, match, params, skipRe)
+ rawFrames = appendStackFrame(rawFrames, match, skipRe)
partIdx++
continue nextPart
}
@@ -652,7 +693,7 @@ nextPart:
break
}
}
- frames = appendStackFrame(frames, match, params, skipRe)
+ rawFrames = appendStackFrame(rawFrames, match, skipRe)
}
} else {
var ln []byte
@@ -666,7 +707,7 @@ nextPart:
if match == nil {
continue
}
- frames = appendStackFrame(frames, match, params, skipRe)
+ rawFrames = appendStackFrame(rawFrames, match, skipRe)
break
}
}
@@ -674,22 +715,68 @@ nextPart:
return results, ok
}
-func appendStackFrame(frames []string, match [][]byte, params *stackParams, skipRe *regexp.Regexp) []string {
+func appendStackFrame(frames []string, match [][]byte, skipRe *regexp.Regexp) []string {
if len(match) < 2 {
return frames
}
for _, frame := range match[1:] {
if frame != nil && (skipRe == nil || !skipRe.Match(frame)) {
- frameName := string(frame)
- for _, prefix := range params.stripFramePrefixes {
- frameName = strings.TrimPrefix(frameName, prefix)
- }
- frames = append(frames, frameName)
+ frames = append(frames, string(frame))
}
}
return frames
}
+func canonicalArgs(prefix []any, frames []extractedFrame) []any {
+ ret := append([]any{}, prefix...)
+ for _, frame := range frames {
+ ret = append(ret, frame.canonical)
+ }
+ return ret
+}
+
+func partiallyStrippedArgs(prefix []any, frames []extractedFrame, params *stackParams) [][]any {
+ if params == nil {
+ return nil
+ }
+ ret := [][]any{}
+ for i := 0; i <= len(params.stripFramePrefixes); i++ {
+ var list []any
+ add := true
+
+ // Also include the raw frames.
+ stripPrefix := ""
+ if i > 0 {
+ stripPrefix, add = params.stripFramePrefixes[i-1], false
+ }
+ for _, frame := range frames {
+ trimmed := strings.TrimPrefix(frame.raw, stripPrefix)
+ if trimmed != frame.raw {
+ add = true
+ }
+ list = append(list, trimmed)
+ }
+ if add {
+ list = append(append([]any{}, prefix...), list...)
+ ret = append(ret, list)
+ }
+ }
+ return ret
+}
+
+func uniqueStrings(source []string) []string {
+ dup := map[string]struct{}{}
+ var ret []string
+ for _, item := range source {
+ if _, ok := dup[item]; ok {
+ continue
+ }
+ dup[item] = struct{}{}
+ ret = append(ret, item)
+ }
+ return ret
+}
+
func simpleLineParser(output []byte, oopses []*oops, params *stackParams, ignores []*regexp.Regexp) *Report {
rep := &Report{
Output: output,
diff --git a/pkg/report/testdata/linux/report/179 b/pkg/report/testdata/linux/report/179
index b03ece488..8f71e975f 100644
--- a/pkg/report/testdata/linux/report/179
+++ b/pkg/report/testdata/linux/report/179
@@ -1,5 +1,7 @@
TITLE: INFO: task hung in synchronize_rcu
+ALT: INFO: task hung in synchronize_sched
ALT: hang in synchronize_rcu
+ALT: hang in synchronize_sched
TYPE: HANG
[ 369.632214] INFO: task syz-executor4:8442 blocked for more than 120 seconds.
diff --git a/pkg/report/testdata/linux/report/237 b/pkg/report/testdata/linux/report/237
index 50cfb2b96..5d9e8f7b6 100644
--- a/pkg/report/testdata/linux/report/237
+++ b/pkg/report/testdata/linux/report/237
@@ -1,4 +1,6 @@
TITLE: INFO: rcu detected stall in mount
+ALT: INFO: rcu detected stall in ksys_mount
+ALT: stall in ksys_mount
ALT: stall in mount
TYPE: HANG
diff --git a/pkg/report/testdata/linux/report/264 b/pkg/report/testdata/linux/report/264
index 349c7c330..506d44274 100644
--- a/pkg/report/testdata/linux/report/264
+++ b/pkg/report/testdata/linux/report/264
@@ -1,4 +1,6 @@
TITLE: BUG: soft lockup in sys_rmdir
+ALT: BUG: soft lockup in __x64_sys_rmdir
+ALT: stall in __x64_sys_rmdir
ALT: stall in sys_rmdir
TYPE: HANG
diff --git a/pkg/report/testdata/linux/report/266 b/pkg/report/testdata/linux/report/266
index 7b0c0aa22..0018ceec9 100644
--- a/pkg/report/testdata/linux/report/266
+++ b/pkg/report/testdata/linux/report/266
@@ -1,4 +1,6 @@
TITLE: BUG: soft lockup in sys_rmdir
+ALT: BUG: soft lockup in __x64_sys_rmdir
+ALT: stall in __x64_sys_rmdir
ALT: stall in sys_rmdir
TYPE: HANG
diff --git a/pkg/report/testdata/linux/report/275 b/pkg/report/testdata/linux/report/275
index 433dde00c..dfe1c6be5 100644
--- a/pkg/report/testdata/linux/report/275
+++ b/pkg/report/testdata/linux/report/275
@@ -1,5 +1,7 @@
TITLE: INFO: rcu detected stall in smp_call_function
+ALT: INFO: rcu detected stall in smp_call_function_single
ALT: stall in smp_call_function
+ALT: stall in smp_call_function_single
TYPE: HANG
[ 401.753130] rcu: INFO: rcu_sched detected stalls on CPUs/tasks:
diff --git a/pkg/report/testdata/linux/report/278 b/pkg/report/testdata/linux/report/278
index 57f39cc0d..5c9268c05 100644
--- a/pkg/report/testdata/linux/report/278
+++ b/pkg/report/testdata/linux/report/278
@@ -1,4 +1,6 @@
TITLE: INFO: rcu detected stall in sys_futex
+ALT: INFO: rcu detected stall in __x64_sys_futex
+ALT: stall in __x64_sys_futex
ALT: stall in sys_futex
TYPE: HANG
diff --git a/pkg/report/testdata/linux/report/288 b/pkg/report/testdata/linux/report/288
index 8e5a78051..24ad049cd 100644
--- a/pkg/report/testdata/linux/report/288
+++ b/pkg/report/testdata/linux/report/288
@@ -1,5 +1,7 @@
TITLE: BUG: soft lockup in smp_call_function
+ALT: BUG: soft lockup in smp_call_function_single
ALT: stall in smp_call_function
+ALT: stall in smp_call_function_single
TYPE: HANG
[ 1342.342232] watchdog: BUG: soft lockup - CPU#0 stuck for 123s! [syz-executor0:8009]
diff --git a/pkg/report/testdata/linux/report/291 b/pkg/report/testdata/linux/report/291
index 588fb848c..b82bdc71d 100644
--- a/pkg/report/testdata/linux/report/291
+++ b/pkg/report/testdata/linux/report/291
@@ -1,4 +1,6 @@
TITLE: INFO: rcu detected stall in rmdir
+ALT: INFO: rcu detected stall in SyS_rmdir
+ALT: stall in SyS_rmdir
ALT: stall in rmdir
TYPE: HANG
diff --git a/pkg/report/testdata/linux/report/292 b/pkg/report/testdata/linux/report/292
index 0f78325d5..acc142e03 100644
--- a/pkg/report/testdata/linux/report/292
+++ b/pkg/report/testdata/linux/report/292
@@ -1,5 +1,7 @@
TITLE: INFO: rcu detected stall in smp_call_function
+ALT: INFO: rcu detected stall in smp_call_function_single
ALT: stall in smp_call_function
+ALT: stall in smp_call_function_single
TYPE: HANG
[ 420.341960] INFO: rcu_preempt detected stalls on CPUs/tasks:
diff --git a/pkg/report/testdata/linux/report/296 b/pkg/report/testdata/linux/report/296
index 77d85584a..33ae31f09 100644
--- a/pkg/report/testdata/linux/report/296
+++ b/pkg/report/testdata/linux/report/296
@@ -1,4 +1,6 @@
TITLE: BUG: soft lockup in mount
+ALT: BUG: soft lockup in compat_SyS_mount
+ALT: stall in compat_SyS_mount
ALT: stall in mount
TYPE: HANG
diff --git a/pkg/report/testdata/linux/report/297 b/pkg/report/testdata/linux/report/297
index 0e6471dd2..22ce896a0 100644
--- a/pkg/report/testdata/linux/report/297
+++ b/pkg/report/testdata/linux/report/297
@@ -1,5 +1,7 @@
TITLE: BUG: soft lockup in smp_call_function
+ALT: BUG: soft lockup in smp_call_function_single
ALT: stall in smp_call_function
+ALT: stall in smp_call_function_single
TYPE: HANG
[ 601.962573] watchdog: BUG: soft lockup - CPU#1 stuck for 123s! [syz-executor1:24793]
diff --git a/pkg/report/testdata/linux/report/300 b/pkg/report/testdata/linux/report/300
index 73b10050c..7c06c668b 100644
--- a/pkg/report/testdata/linux/report/300
+++ b/pkg/report/testdata/linux/report/300
@@ -1,5 +1,7 @@
TITLE: INFO: rcu detected stall in smp_call_function
+ALT: INFO: rcu detected stall in smp_call_function_single
ALT: stall in smp_call_function
+ALT: stall in smp_call_function_single
TYPE: HANG
[ 3481.239960] INFO: rcu_sched detected stalls on CPUs/tasks:
diff --git a/pkg/report/testdata/linux/report/316 b/pkg/report/testdata/linux/report/316
index 3f9f9e131..f6e11a0e1 100644
--- a/pkg/report/testdata/linux/report/316
+++ b/pkg/report/testdata/linux/report/316
@@ -1,4 +1,6 @@
TITLE: kernel panic: corrupted stack end in sys_socket
+ALT: kernel panic: corrupted stack end in __arm64_sys_socket
+ALT: stack-overflow in __arm64_sys_socket
ALT: stack-overflow in sys_socket
[ 2231.649459] Kernel panic - not syncing: corrupted stack end detected inside scheduler
diff --git a/pkg/report/testdata/linux/report/350 b/pkg/report/testdata/linux/report/350
index 19cab373f..85a813250 100644
--- a/pkg/report/testdata/linux/report/350
+++ b/pkg/report/testdata/linux/report/350
@@ -1,5 +1,7 @@
TITLE: BUG: soft lockup in smp_call_function
+ALT: BUG: soft lockup in smp_call_function_many
ALT: stall in smp_call_function
+ALT: stall in smp_call_function_many
TYPE: HANG
[ 1098.601132][ C2] watchdog: BUG: soft lockup - CPU#2 stuck for 136s! [syz-executor4:4888]
diff --git a/pkg/report/testdata/linux/report/378 b/pkg/report/testdata/linux/report/378
index 1b0edbaa2..ec40c051a 100644
--- a/pkg/report/testdata/linux/report/378
+++ b/pkg/report/testdata/linux/report/378
@@ -1,4 +1,6 @@
TITLE: INFO: rcu detected stall in sys_inotify_init
+ALT: INFO: rcu detected stall in __ia32_sys_inotify_init
+ALT: stall in __ia32_sys_inotify_init
ALT: stall in sys_inotify_init
TYPE: HANG
diff --git a/pkg/report/testdata/linux/report/421 b/pkg/report/testdata/linux/report/421
index e6bf45a3d..d7d540a4b 100644
--- a/pkg/report/testdata/linux/report/421
+++ b/pkg/report/testdata/linux/report/421
@@ -1,4 +1,6 @@
TITLE: INFO: rcu detected stall in sys_exit_group
+ALT: INFO: rcu detected stall in __x64_sys_exit_group
+ALT: stall in __x64_sys_exit_group
ALT: stall in sys_exit_group
TYPE: HANG
diff --git a/pkg/report/testdata/linux/report/432 b/pkg/report/testdata/linux/report/432
index 92a356636..7d6e8a585 100644
--- a/pkg/report/testdata/linux/report/432
+++ b/pkg/report/testdata/linux/report/432
@@ -1,5 +1,7 @@
TITLE: INFO: task hung in synchronize_rcu
+ALT: INFO: task hung in synchronize_rcu_expedited
ALT: hang in synchronize_rcu
+ALT: hang in synchronize_rcu_expedited
TYPE: HANG
[ 1686.611836][ T1064] INFO: task kworker/u4:5:9381 blocked for more than 143 seconds.
diff --git a/pkg/report/testdata/linux/report/433 b/pkg/report/testdata/linux/report/433
index 87b77b49b..0aaa93bf8 100644
--- a/pkg/report/testdata/linux/report/433
+++ b/pkg/report/testdata/linux/report/433
@@ -1,5 +1,7 @@
TITLE: INFO: task hung in synchronize_rcu
+ALT: INFO: task hung in synchronize_rcu_expedited
ALT: hang in synchronize_rcu
+ALT: hang in synchronize_rcu_expedited
TYPE: HANG
[ 741.089420][ T1057] INFO: task syz-executor.2:28539 blocked for more than 143 seconds.
diff --git a/pkg/report/testdata/linux/report/434 b/pkg/report/testdata/linux/report/434
index aefcc52cd..38913b724 100644
--- a/pkg/report/testdata/linux/report/434
+++ b/pkg/report/testdata/linux/report/434
@@ -1,5 +1,7 @@
TITLE: INFO: task hung in synchronize_rcu
+ALT: INFO: task hung in synchronize_rcu_expedited
ALT: hang in synchronize_rcu
+ALT: hang in synchronize_rcu_expedited
TYPE: HANG
[ 405.210796][ T1057] INFO: task syz-executor.3:18078 blocked for more than 143 seconds.
diff --git a/pkg/report/testdata/linux/report/435 b/pkg/report/testdata/linux/report/435
index 8274280c9..d30faf84d 100644
--- a/pkg/report/testdata/linux/report/435
+++ b/pkg/report/testdata/linux/report/435
@@ -1,4 +1,6 @@
TITLE: INFO: task hung in synchronize_rcu
+ALT: INFO: task hung in __synchronize_srcu
+ALT: hang in __synchronize_srcu
ALT: hang in synchronize_rcu
TYPE: HANG
diff --git a/pkg/report/testdata/linux/report/437 b/pkg/report/testdata/linux/report/437
index 96b6796ba..494224268 100644
--- a/pkg/report/testdata/linux/report/437
+++ b/pkg/report/testdata/linux/report/437
@@ -1,5 +1,7 @@
TITLE: INFO: task hung in synchronize_rcu
+ALT: INFO: task hung in synchronize_rcu_expedited
ALT: hang in synchronize_rcu
+ALT: hang in synchronize_rcu_expedited
TYPE: HANG
[ 1395.402634][ T1057] INFO: task kworker/u4:8:11933 blocked for more than 143 seconds.
diff --git a/pkg/report/testdata/linux/report/438 b/pkg/report/testdata/linux/report/438
index 9804eb4b9..9ec38a3ae 100644
--- a/pkg/report/testdata/linux/report/438
+++ b/pkg/report/testdata/linux/report/438
@@ -1,5 +1,7 @@
TITLE: INFO: task hung in synchronize_rcu
+ALT: INFO: task hung in synchronize_rcu_expedited
ALT: hang in synchronize_rcu
+ALT: hang in synchronize_rcu_expedited
TYPE: HANG
[ 327.308891][ T1057] INFO: task kworker/u4:6:10032 blocked for more than 143 seconds.
diff --git a/pkg/report/testdata/linux/report/439 b/pkg/report/testdata/linux/report/439
index 05166f32f..d64f38030 100644
--- a/pkg/report/testdata/linux/report/439
+++ b/pkg/report/testdata/linux/report/439
@@ -1,5 +1,7 @@
TITLE: INFO: task hung in synchronize_rcu
+ALT: INFO: task hung in synchronize_rcu_expedited
ALT: hang in synchronize_rcu
+ALT: hang in synchronize_rcu_expedited
TYPE: HANG
[ 348.321211][ T1056] INFO: task syz-executor.2:9976 blocked for more than 143 seconds.
diff --git a/pkg/report/testdata/linux/report/442 b/pkg/report/testdata/linux/report/442
index 1c0a9ac72..f04d55ca1 100644
--- a/pkg/report/testdata/linux/report/442
+++ b/pkg/report/testdata/linux/report/442
@@ -1,5 +1,7 @@
TITLE: INFO: task hung in synchronize_rcu
+ALT: INFO: task hung in synchronize_sched
ALT: hang in synchronize_rcu
+ALT: hang in synchronize_sched
TYPE: HANG
[ 716.122185] INFO: task syz-executor.0:16519 blocked for more than 140 seconds.
diff --git a/pkg/report/testdata/linux/report/445 b/pkg/report/testdata/linux/report/445
index ddfdf6cdc..f14756da6 100644
--- a/pkg/report/testdata/linux/report/445
+++ b/pkg/report/testdata/linux/report/445
@@ -1,5 +1,7 @@
TITLE: INFO: task hung in synchronize_rcu
+ALT: INFO: task hung in synchronize_rcu_expedited
ALT: hang in synchronize_rcu
+ALT: hang in synchronize_rcu_expedited
TYPE: HANG
[ 341.326285][ T1070] INFO: task kworker/u4:0:7 blocked for more than 143 seconds.
diff --git a/pkg/report/testdata/linux/report/502 b/pkg/report/testdata/linux/report/502
index 79eaf7cf3..4523fd17f 100644
--- a/pkg/report/testdata/linux/report/502
+++ b/pkg/report/testdata/linux/report/502
@@ -1,5 +1,7 @@
TITLE: INFO: rcu detected stall in smp_call_function
+ALT: INFO: rcu detected stall in smp_call_function_single
ALT: stall in smp_call_function
+ALT: stall in smp_call_function_single
TYPE: HANG
[ 611.778481][ C1] rcu: INFO: rcu_preempt detected stalls on CPUs/tasks:
diff --git a/pkg/report/testdata/linux/report/503 b/pkg/report/testdata/linux/report/503
index 89744f3e6..24a874c17 100644
--- a/pkg/report/testdata/linux/report/503
+++ b/pkg/report/testdata/linux/report/503
@@ -1,5 +1,7 @@
TITLE: BUG: soft lockup in smp_call_function
+ALT: BUG: soft lockup in smp_call_function_single
ALT: stall in smp_call_function
+ALT: stall in smp_call_function_single
TYPE: HANG
[ 1117.938056][ C0] watchdog: BUG: soft lockup - CPU#0 stuck for 123s! [syz-executor.1:2970]
diff --git a/pkg/report/testdata/linux/report/504 b/pkg/report/testdata/linux/report/504
index 8dc6a541f..dc8fc4c41 100644
--- a/pkg/report/testdata/linux/report/504
+++ b/pkg/report/testdata/linux/report/504
@@ -1,5 +1,7 @@
TITLE: BUG: soft lockup in smp_call_function
+ALT: BUG: soft lockup in smp_call_function_single
ALT: stall in smp_call_function
+ALT: stall in smp_call_function_single
TYPE: HANG
[ 635.060078][ C0] watchdog: BUG: soft lockup - CPU#0 stuck for 123s! [syz-executor.2:12834]
diff --git a/pkg/report/testdata/linux/report/505 b/pkg/report/testdata/linux/report/505
index af0f7fc92..42ef0ff31 100644
--- a/pkg/report/testdata/linux/report/505
+++ b/pkg/report/testdata/linux/report/505
@@ -1,5 +1,7 @@
TITLE: BUG: soft lockup in smp_call_function
+ALT: BUG: soft lockup in smp_call_function_single
ALT: stall in smp_call_function
+ALT: stall in smp_call_function_single
TYPE: HANG
[ 1472.340932][ C1] watchdog: BUG: soft lockup - CPU#1 stuck for 123s! [syz-executor.0:8399]
diff --git a/pkg/report/testdata/linux/report/506 b/pkg/report/testdata/linux/report/506
index fe00040d0..81b2c21c9 100644
--- a/pkg/report/testdata/linux/report/506
+++ b/pkg/report/testdata/linux/report/506
@@ -1,5 +1,7 @@
TITLE: BUG: soft lockup in smp_call_function
+ALT: BUG: soft lockup in smp_call_function_single
ALT: stall in smp_call_function
+ALT: stall in smp_call_function_single
TYPE: HANG
[ 1270.359469][ C0] watchdog: BUG: soft lockup - CPU#0 stuck for 123s! [kworker/0:13:3571]
diff --git a/pkg/report/testdata/linux/report/507 b/pkg/report/testdata/linux/report/507
index d8850e22d..dc1f03393 100644
--- a/pkg/report/testdata/linux/report/507
+++ b/pkg/report/testdata/linux/report/507
@@ -1,4 +1,6 @@
TITLE: INFO: task hung in synchronize_rcu
+ALT: INFO: task hung in __synchronize_srcu
+ALT: hang in __synchronize_srcu
ALT: hang in synchronize_rcu
TYPE: HANG
diff --git a/pkg/report/testdata/linux/report/529 b/pkg/report/testdata/linux/report/529
index d4b11bc8e..e5dd71133 100644
--- a/pkg/report/testdata/linux/report/529
+++ b/pkg/report/testdata/linux/report/529
@@ -1,4 +1,5 @@
TITLE: WARNING: suspicious RCU usage in sys_rt_sigreturn
+ALT: WARNING: suspicious RCU usage in __arm64_sys_rt_sigreturn
TYPE: LOCKDEP
[ 581.924125][ T4410] =============================
diff --git a/pkg/report/testdata/linux/report/549 b/pkg/report/testdata/linux/report/549
index 40c91b21a..cd58f922f 100644
--- a/pkg/report/testdata/linux/report/549
+++ b/pkg/report/testdata/linux/report/549
@@ -1,5 +1,7 @@
TITLE: INFO: rcu detected stall in openat2
+ALT: INFO: rcu detected stall in sys_openat2
ALT: stall in openat2
+ALT: stall in sys_openat2
TYPE: HANG
rcu: INFO: rcu_sched self-detected stall on CPU
diff --git a/pkg/report/testdata/linux/report/610 b/pkg/report/testdata/linux/report/610
index 575db2508..e9415bc84 100644
--- a/pkg/report/testdata/linux/report/610
+++ b/pkg/report/testdata/linux/report/610
@@ -1,4 +1,6 @@
TITLE: INFO: rcu detected stall in sys_recvmmsg
+ALT: INFO: rcu detected stall in __x64_sys_recvmmsg
+ALT: stall in __x64_sys_recvmmsg
ALT: stall in sys_recvmmsg
TYPE: HANG
diff --git a/pkg/report/testdata/linux/report/611 b/pkg/report/testdata/linux/report/611
index 63d87ed48..cbf9aa46c 100644
--- a/pkg/report/testdata/linux/report/611
+++ b/pkg/report/testdata/linux/report/611
@@ -1,4 +1,6 @@
TITLE: INFO: rcu detected stall in sys_sendmmsg
+ALT: INFO: rcu detected stall in __x64_sys_sendmmsg
+ALT: stall in __x64_sys_sendmmsg
ALT: stall in sys_sendmmsg
TYPE: HANG
diff --git a/pkg/report/testdata/linux/report/622 b/pkg/report/testdata/linux/report/622
index f50eb40cb..9c8af83ba 100644
--- a/pkg/report/testdata/linux/report/622
+++ b/pkg/report/testdata/linux/report/622
@@ -1,4 +1,5 @@
TITLE: WARNING: refcount bug in sys_memfd_secret
+ALT: WARNING: refcount bug in __se_sys_memfd_secret
TYPE: WARNING
[ 54.834944][ T6519] ------------[ cut here ]------------
diff --git a/pkg/report/testdata/linux/report/623 b/pkg/report/testdata/linux/report/623
index f532d5509..6871fa11f 100644
--- a/pkg/report/testdata/linux/report/623
+++ b/pkg/report/testdata/linux/report/623
@@ -1,4 +1,5 @@
TITLE: WARNING: refcount bug in sys_memfd_secret
+ALT: WARNING: refcount bug in __x64_sys_memfd_secret
TYPE: WARNING
[ 90.146573][ T6540] ------------[ cut here ]------------
diff --git a/pkg/report/testdata/linux/report/65 b/pkg/report/testdata/linux/report/65
index b524f8217..0e99347de 100644
--- a/pkg/report/testdata/linux/report/65
+++ b/pkg/report/testdata/linux/report/65
@@ -1,5 +1,7 @@
TITLE: BUG: soft lockup in smp_call_function
+ALT: BUG: soft lockup in smp_call_function_single
ALT: stall in smp_call_function
+ALT: stall in smp_call_function_single
TYPE: HANG
[ 247.938942] watchdog: BUG: soft lockup - CPU#0 stuck for 134s! [kworker/0:2:1400]
diff --git a/pkg/report/testdata/linux/report/688 b/pkg/report/testdata/linux/report/688
index 2feb97add..d29eee23b 100644
--- a/pkg/report/testdata/linux/report/688
+++ b/pkg/report/testdata/linux/report/688
@@ -1,4 +1,6 @@
TITLE: INFO: rcu detected stall in sys_recvmmsg
+ALT: INFO: rcu detected stall in __arm64_sys_recvmmsg
+ALT: stall in __arm64_sys_recvmmsg
ALT: stall in sys_recvmmsg
TYPE: HANG
diff --git a/pkg/report/testdata/linux/report/75 b/pkg/report/testdata/linux/report/75
index 56fc46efb..bb614aba3 100644
--- a/pkg/report/testdata/linux/report/75
+++ b/pkg/report/testdata/linux/report/75
@@ -1,4 +1,5 @@
TITLE: BUG: scheduling while atomic in pause
+ALT: BUG: scheduling while atomic in SyS_pause
TYPE: ATOMIC_SLEEP
[ 185.479466] BUG: scheduling while atomic: syz-executor0/19425/0x00000000