From 76400e5b38b0e6d150454ab38bebfb00dc4af7ca Mon Sep 17 00:00:00 2001 From: Aleksandr Nogikh Date: Thu, 9 Feb 2023 11:47:16 +0100 Subject: 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. --- pkg/report/linux.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'pkg/report/linux.go') 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 -- cgit mrf-deployment