Here is a first patch to add support for AHCI HBA initiated power
management to ahci(4):
http://leaf.dragonflybsd.org/~hofmann/ahci_pwrmgmt.patch

To enable it you need to set
        hint.ahci/powermanagement=1
for medium or
        hint.ahci/powermanagement=2
for aggressive power management in /boot/loader.conf.
Setting it to 2 reduces performance quite a bit!
On the positive side I see the 1W reduction in power consumption as it is 
reported for Linux.

Obviously this should be tunable at runtime, but I have some
questions:

In which context are sysctl callbacks run? How would I avoid races
when modifying flags or accessing registers (to disable the PRCE intr
for example)? 
Maybe setting flags with with atomic operations and do the real work
in the per port thread?

Cheers,
Johannes

Reply via email to