x86/nmi: Rate limit unknown NMI messages
authorNamhyung Kim <namhyung@kernel.org>
Sat, 9 Dec 2023 01:52:11 +0000 (17:52 -0800)
committerBorislav Petkov (AMD) <bp@alien8.de>
Thu, 25 Jan 2024 16:29:06 +0000 (17:29 +0100)
On some AMD machines, unknown NMI messages were printed on the console
continuously when using perf command with IBS.  It was reported that it
can slow down the kernel. Ratelimit the unknown NMI messages.

Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Acked-by: Ravi Bangoria <ravi.bangoria@amd.com>
Acked-by: Guilherme Amadio <amadio@gentoo.org>
Acked-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/r/20231209015211.357983-1-namhyung@kernel.org
arch/x86/kernel/nmi.c

index 17e955ab69feda933cca3708822f6f9f598e31bf..d23867901186648d5fe27f624c8bb6067e947494 100644 (file)
@@ -303,13 +303,13 @@ unknown_nmi_error(unsigned char reason, struct pt_regs *regs)
 
        __this_cpu_add(nmi_stats.unknown, 1);
 
-       pr_emerg("Uhhuh. NMI received for unknown reason %02x on CPU %d.\n",
-                reason, smp_processor_id());
+       pr_emerg_ratelimited("Uhhuh. NMI received for unknown reason %02x on CPU %d.\n",
+                            reason, smp_processor_id());
 
        if (unknown_nmi_panic || panic_on_unrecovered_nmi)
                nmi_panic(regs, "NMI: Not continuing");
 
-       pr_emerg("Dazed and confused, but trying to continue\n");
+       pr_emerg_ratelimited("Dazed and confused, but trying to continue\n");
 }
 NOKPROBE_SYMBOL(unknown_nmi_error);