Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 10 Jul 2007 21:13:21 +0300 (EEST)
From:      "Cristian KLEIN" <cristi@net.utcluj.ro>
To:        freebsd-current@freebsd.org
Subject:   acpi forced suspending panics
Message-ID:  <62195.193.226.6.226.1184091201.squirrel@intranet.utcluj.ro>

next in thread | raw e-mail | index | archive | help
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).






Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?62195.193.226.6.226.1184091201.squirrel>