kern/160838: ACPI Battery Monitor Non-Functional
eric at shadowsun.net
Tue Sep 20 04:10:11 UTC 2011
>Synopsis: ACPI Battery Monitor Non-Functional
>Arrival-Date: Tue Sep 20 04:10:10 UTC 2011
>Originator: Eric McCorkle
FreeBSD atom-edge 9.0-BETA2 FreeBSD 9.0-BETA2 #41: Mon Sep 19 19:02:17 EDT 2011 root at atom-edge:/usr/obj/usr/src/sys/CUSTOM amd64
Recently updated sources, which caused acpiconf -i0 to stop reporting information about the battery properly. Instead, it reports "not present", and 0 for all values, except charge (which reports as -1).
I have already identified the root cause for the problem.
The problem should occur on any system with a battery using the cmbat interface, which dispatches a large number of calls via AcpiOsExecute during initialization. This fills up the task queue, which results in the call to acpi_cmbat_init_battery getting dropped due to the queue being full, which results in the bif information not being properly initialized. Because the cmbat driver only reads this information at initalization, the driver will incorrectly report the battery as not being present.
Similar issues with other ACPI features may have a similar root cause.
Setting debug.acpi.max_tasks to a high value (I used 128) is a stable workaround, and will restore functionality.
More information about the freebsd-bugs