aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/report/linux.go
diff options
context:
space:
mode:
authorAleksandr Nogikh <nogikh@google.com>2023-02-09 11:47:16 +0100
committerAleksandr Nogikh <wp32pw@gmail.com>2023-02-10 13:26:12 +0100
commit76400e5b38b0e6d150454ab38bebfb00dc4af7ca (patch)
tree1368c1f18a49f830b469cee5a170dc274e562b96 /pkg/report/linux.go
parente29a17f507c26c0b9e50ceadad1f7643063809a1 (diff)
pkg/report: extract guilty files for rcu errors correctly
The existing code is broken - the console output does not contain a whitespace before the apic_timer_interrupt frame. Also, add the apic_timer source files to the excluded ones.
Diffstat (limited to 'pkg/report/linux.go')
-rw-r--r--pkg/report/linux.go3
1 files changed, 2 insertions, 1 deletions
diff --git a/pkg/report/linux.go b/pkg/report/linux.go
index 62d2adb6d..d29b5909c 100644
--- a/pkg/report/linux.go
+++ b/pkg/report/linux.go
@@ -77,6 +77,7 @@ func ctorLinux(cfg *config) (reporterImpl, []string, error) {
regexp.MustCompile(`^arch/.*/mm/fault.c`),
regexp.MustCompile(`^arch/.*/mm/physaddr.c`),
regexp.MustCompile(`^arch/.*/kernel/stacktrace.c`),
+ regexp.MustCompile(`^arch/.*/kernel/apic/apic.c`),
regexp.MustCompile(`^arch/arm64/kernel/entry.*.c`),
regexp.MustCompile(`^kernel/locking/.*`),
regexp.MustCompile(`^kernel/panic.c`),
@@ -701,7 +702,7 @@ func (ctx *linux) extractGuiltyFileRaw(title string, report []byte) string {
// we would need to ignore too many files and that would be fragile.
// So instead we try to extract guilty file starting from the known
// interrupt entry point first.
- for _, interruptEnd := range []string{" apic_timer_interrupt+0x", "Exception stack"} {
+ for _, interruptEnd := range []string{"apic_timer_interrupt+0x", "Exception stack"} {
if pos := bytes.Index(report, []byte(interruptEnd)); pos != -1 {
if file := ctx.extractGuiltyFileImpl(report[pos:]); file != "" {
return file