also known as C-states. The code is modular and provides an easy way to add
the remaining functionality later (namely throttling and P-states).
Remarks:
1. Commented out in the GENERICs; more testing exposure is needed.
2. The C3-state is disabled for the time being because it turns off
timers, among them the local APIC timer. This may not be universally
true on all x86 processors; define ACPICPU_ENABLE_C3 to test.
3. The algorithm used to choose a power state may need tuning. When
evaluating the appropriate state, the implementation uses the
previous sleep time as an indicator. Additional hints would include
for example the system load.
Also bus master activity is evaluated when choosing a state. The
usb(4) stack is notorious for such activity even when unused.
Typically it must be disabled in order to reach the C3-state,
but it may also prevent the use of C2.
4. While no extensive empirical measurements have been carried out, the
power savings are somewhere between 1-2 W with C1 and C2, depending
on the processor, firmware, and load. With C3 even up to 4 W can be
saved. The less something ticks, the more power is saved.
ok jmcneill@, joerg@, and discussed with various people.
XXX: i couldn't get the python/xml generator to run outside of
XXX: the libxcb build tree, so i just copied these from there,
XXX: but ideally files/Makefile could know how to do this.
as not to call it in some error paths.
Instead, if there is a watchdog present, deregister the NULL handler before
establishing the one for the watchdog.
of suspending. Suspending will still be denied if the watchdog is active.
As discussed on tech-kern@
XXX The pmf handlers for this and all other watchdogs should be factored
XXX out into a common handler for a generic wdog(4) pseudo-device, but
XXX that's left for the future.
being exceeded. I cannot figure out what is going on by code
reading, nor repeat this either on my desktop or in qemu, so skip
those tests for msdosfs until I can get to the bottom of it.
Initial work from the GSoC 2008 project by Lukasz Strzygowski.
I think that this, together with the previous conversion of librt, obsoletes
the tests in the semaphore/ directory. Will investigate later.