Bug 6676
Summary: | "os_wait_semaphore: Failed to acquire semaphore" hang on boot | ||
---|---|---|---|
Product: | ACPI | Reporter: | Patrick Horn (phrh) |
Component: | Other | Assignee: | Luming Yu (luming.yu) |
Status: | CLOSED CODE_FIX | ||
Severity: | normal | CC: | acpi-bugzilla |
Priority: | P2 | ||
Hardware: | i386 | ||
OS: | Linux | ||
Kernel Version: | 2.6.16.2 | Subsystem: | |
Regression: | --- | Bisected commit-id: | |
Attachments: | dmesg (from syslog) of a time when this error occurred (but booted successfully). |
Description
Patrick Horn
2006-06-10 18:01:54 UTC
Created attachment 8287 [details]
dmesg (from syslog) of a time when this error occurred (but booted successfully).
Please try build a kernel with acpi debug option disabled, and see if there could have other problems after removing the side effect of printk flood, and acpi debug overhead. I ended up compiling a kernel with disabled SMP to debug a different bug, and I found that without SMP (Hyperthreading), this bug happens every time instead of only occasionally. I disabled ACPI debugging as well as the "ACPI Exception" printk that occurred in drivers/acpi/utilities/utmisc.c. Disabling the two debug messages just makes the kernel hang when it reaches that spot. This may have made the race condition (I assume) in SMP mode less frequent, but it had no effect in allowing me to boot with SMP disabled. I have no idea how to debug this type of problem. Checking the error message, the semaphore in question is ACPI_MTX_HARDWARE, used to lock the ACPI hardware. This type of internal semaphore is always called with a WAIT_FOREVER timeout; therefore an AE_TIME should never occur. The next step would be to determine why the timeout is happening (in the OSL) Given that the thread ID is zero, perhaps this is the case where an attempt to acquire the semaphore is being made at interrupt level. Starting in ACPICA version 20060608, we changed the hardware semaphore to a spinlock to avoid any such problems. Please test the latest acpi test tree containing ACPICA version 20060608. If doesn't work, just reopen the bug. |