From fd2a5f28eb5e2b7c83b5e814f53e44e2a5dde24c Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Fri, 6 Mar 2020 13:37:58 +0100 Subject: executor: prevent "NMI handler took too long" messages nmi_check_duration() prints "INFO: NMI handler took too long" on slow debug kernels. It happens a lot in qemu, and the messages are frequently corrupted (intermixed with other kernel output as they are printed from NMI) and are not matched against the suppression in pkg/report. This write prevents these messages from being printed. --- executor/executor_linux.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'executor/executor_linux.h') diff --git a/executor/executor_linux.h b/executor/executor_linux.h index 63c900c5a..d4220c23f 100644 --- a/executor/executor_linux.h +++ b/executor/executor_linux.h @@ -225,3 +225,15 @@ static feature_t features[] = { {"binfmt_misc", setup_binfmt_misc}, {"kcsan", setup_kcsan}, }; + +static void setup_machine() +{ + // nmi_check_duration() prints "INFO: NMI handler took too long" on slow debug kernels. + // It happens a lot in qemu, and the messages are frequently corrupted + // (intermixed with other kernel output as they are printed from NMI) + // and are not matched against the suppression in pkg/report. + // This write prevents these messages from being printed. + // Note: this is not executed in C reproducers. + if (!write_file("/sys/kernel/debug/x86/nmi_longest_ns", "10000000000")) + printf("write to /sys/kernel/debug/x86/nmi_longest_ns failed: %s\n", strerror(errno)); +} -- cgit mrf-deployment