Re: [PATCH 15/20] ACPICA: executer/exsystem: Warn about sleeps greater than 10 ms

From: Paul Menzel
Date: Sat May 21 2022 - 19:29:12 EST


Dear Rafael,


Am 21.05.22 um 18:11 schrieb Rafael J. Wysocki:
On Mon, Apr 11, 2022 at 9:04 PM Rafael J. Wysocki <rjw@xxxxxxxxxxxxx> wrote:

From: Paul Menzel <pmenzel@xxxxxxxxxxxxx>

ACPICA commit 2a0d1d475e7ea1c815bee1e0692d81db9a7c909c

Quick boottime is important, so warn about sleeps greater than 10 ms.

Distribution Linux kernels reach initrd in 350 ms, so excessive delays
should be called out. 10 ms is chosen randomly, but three of such delays
would already make up ten percent of the boottime.

Link: https://github.com/acpica/acpica/commit/2a0d1d47
Signed-off-by: Bob Moore <robert.moore@xxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>

I have decided to revert this, because it spams logs with unuseful
warnings on many production systems.

Thank you for the information. Can you please give an example?

Power management AML uses sleeps above 10 ms for PCI spec compliance
and polling is not useful in those cases.

Can you please tell me what delays are used? Maybe we can increase the threshold to the one required by the PCI spec?


Kind regards,

Paul


I will submit an analogous revert for upstream ACPICA.

---
exsystem.c | 10 ++++++++++
1 file changed, 10 insertions(+)

diff -Nurp linux.before_name/drivers/acpi/acpica/exsystem.c linux.after_name/drivers/acpi/acpica/exsystem.c
--- linux.before_name/drivers/acpi/acpica/exsystem.c 2022-04-01 18:26:54.958046947 +0200
+++ linux.after_name/drivers/acpi/acpica/exsystem.c 2022-04-01 18:26:51.760086923 +0200
@@ -170,6 +170,16 @@ acpi_status acpi_ex_system_do_sleep(u64
acpi_ex_exit_interpreter();

/*
+ * Warn users about excessive sleep times, so ASL code can be improved to
+ * use polling or similar techniques.
+ */
+ if (how_long_ms > 10) {
+ ACPI_WARNING((AE_INFO,
+ "Firmware issue: Excessive sleep time (%llu ms > 10 ms) in ACPI Control Method",
+ how_long_us));
+ }
+
+ /*
* For compatibility with other ACPI implementations and to prevent
* accidental deep sleeps, limit the sleep time to something reasonable.
*/