acpi forced suspending panics

From: Cristian KLEIN <cristi_at_net.utcluj.ro>
Date: Tue, 10 Jul 2007 21:13:21 +0300 (EEST)
Hi everybody,

I compiled FreeBSD-CURRENT a few days ago on an IBM Thinkpad R51. Whenever
I try to suspend the system using Fn+F4, the system will wait 10 seconds
then panic:

acpi: suspend request timed out, forcing sleep now
panic: Trying sleep, but thread marked as sleeping prohibited

I have a handwritten backtrace if anybody is interested. I don't know what
requires the forced suspend, but the panic is triggered by the following
events:

* acpi_ReqSleepState() notifies the userspace that the system is going to
sleep and initializes a callout, using callout_reset(), which will call
acpi_sleep_force() (dev/acpica/acpi.c:2203)
* softclock() will mark the current thread as non-sleepable
(kern/kern_timeout.c:280) then call acpi_sleep_force(), through the
callout mechanism
* acpi_sleep_force() will go on, and suspend all devices
* some time later, the cardbus driver will call pause() on this very
non-sleepable thread (dev/pccbb/pccbb.c:1242), which, naturally, results
in a panic.

I don't really know how to solve the problem. If I insert
THREAD_SLEEPING_OK() in acpi_sleep_force(), then the system will not panic
anymore, but it doesn't suspend either and it becomes unusable.

Note that the kernel from 7.0-200706 did not have this issue (although it
had other).
Received on Tue Jul 10 2007 - 16:46:00 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:14 UTC