ACPI-CA update patch for review
Matthew Dillon
dillon at apollo.backplane.com
Wed Nov 29 09:19:15 PST 2006
:Some known issues:
:- a warning upon reboot which looks like this:
:
: AcpiOsUnmapMemory: Warning, broken ACPI, bad unmap: 0xc5e1ee00/00000040
:
: IIRC, I've never seen this before updating my patch from 20060707 to
: 20060912, so I may have done something stupid while dealing with the
: changes with regard to Table Manager. I'm investigating this.
I added sanity checks to our AcpiOsMapMemory() and AcpiOsUnmapMemory()
procedures. The code tracks all requests and matches unmaps up against
prior mappings.
:- hand-rolled locking code in AcpiOs{Acquire,Release}Lock() functions:
: ACPI-CA code has been rewritten in 20060623 to make these functions
: to be used as spinlock functions, and called from many places where
: they weren't before. Since our implementation of these locking functions
: used lockmgr lock, which cannot be called from cpu_idle(), this led to
: a panic(mainly when my laptop wakes up from sleep state). After struggling
: with other locking primitives, I ended up with critical section and
: special-cased the idlethread. I believed this shouldn't make the situation
: worse, as ACPI functions called from cpu_idle_hook code in acpi_cpu did
: not using locking before. But I'm open to a better implementation,
: especially how to deal with locking when called from idlethread.
:
:- new ACPI-CA code may be released soon, as 20060912 is more than 2-months
: old now
:
: absolutely :)
:
:Regards.
You could probably use tokens here, but a critical section ought to
work as well since ACPI functions are only called from cpu #0.
-Matt
Matthew Dillon
<dillon at xxxxxxxxxxxxx>
More information about the Submit
mailing list