最近のcurrentは、古いdellのnotePC(XPS12)では表題のメッセージが煩すぎて非常にうっとうしくなりました。
これはlinuxのコードをそのまま持ってきているためで、Xorg上のconsole terminalが
kernel: ACPI Warning: Firmware issue: Excessive sleep time (0x0000000000000014 ms > 10 ms) in ACPI Control Method (20220331/exsystem-355)
で埋め尽くされて、重要なメッセージを見落としてしまうという大問題な状況です。このメッセージは単にinformationalなもので、ACPI biosを修正できる訳ではないので、とにかく迷惑です。ってことで、/usr/src/sys/contrib/dev/acpica/components/executer/exsystem.cの該当部分を弄ることにしました。うちのマシンのACPI biosは10msecではなく20msecで動作しているみたいなので、
% diff -ruN exsystem.c.orig exsystem.c --- exsystem.c.orig 2022-04-03 07:18:33.339997000 +0900 +++ exsystem.c 2022-04-26 19:13:06.814856000 +0900 @@ -342,10 +342,10 @@ * Warn users about excessive sleep times, so ASL code can be improved to * use polling or similar techniques. */ - if (HowLongMs > 10) + if (HowLongMs > 20) { ACPI_WARNING ((AE_INFO, - "Firmware issue: Excessive sleep time (0x%8.8X%8.8X ms > 10 ms)" + "Firmware issue: Excessive sleep time (0x%8.8X%8.8X ms > 20 ms)" " in ACPI Control Method", ACPI_FORMAT_UINT64 (HowLongMs))); }
のように10msecを20msecへ変更しました。本来はsysctlで変更できるようにすべきでしょうが、面倒だし、そもそもこのACPI_WARNING()自体が殆ど無意味なのであまり手間をかける気にもなれず、非常に安易な対処で済ませてしまいました。
P.S. 当初、/etc/syslog.confで/dev/consoleへのkern.warningを止めようとしたのですが、何故か現環境のconsoleは期待した動作をしませんでした。原因追求する暇がなかったのと、kern.warningを全部落とすのは本意ではなかったので、上記の対応になりました。