acpi forced suspending panics
Cristian KLEIN
cristi at net.utcluj.ro
Tue Jul 10 18:46:00 UTC 2007
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).
More information about the freebsd-current
mailing list