acpi(4) corrections, clarifications

Alexander Motin mav at FreeBSD.org
Fri Sep 18 16:13:05 UTC 2009


b. f. wrote:
> While this documentation cleanup is going on, I'd like to point out
> that acpi(4) could use some improvements:
> 
> (1)In the "SYSCTL VARIABLES" section, under hw.acpi.cpu.cx_lowest,
> acpi(4) states "To enable ACPI CPU idling control,
> machdep.cpu_idle_hlt must be set to 1".  However, apparently only the
> pc98 port still uses this OID, while amd64, i386, etc., use something
> like machdep.idle=hlt, so this remark should be changed.  And in any
> case, is this statement correct?  Can't idling now be used with other
> values of machdep.idle, like mwait, mwait_hlt, amdc1e, hlt, and acpi?
> 
> (2)Under the "BUGS" section, acpi(4) states:
> 
> "The acpi CPU idle power management drive conflicts with the local
> APIC (LAPIC) timer. Disable APIC mode with hint.apic.0.disabled or do
> not use the C2 and C3 states if APIC mode is enabled."
> 
> However, mav@, in his recent series of recommendations on
> power-saving, advocated the use of hints like hint.apic.0.clock="0"
> instead.  Is simply turning off the timer sufficient to use the deeper
> sleep states, or must all of the local apic be disabled?  Some
> machines won't boot with hint.apic.0.disabled, so it would be useful
> to determine whether this is really necessary.

It is enough to disable APIC timer to use C2/C3. No need to disable
whole APIC. There were some objections that legacy timers may not route
their interrupts properly on some new systems, but I am not sure whether
disabling whole APIC help them somehow, but SMP it kill definitely.

-- 
Alexander Motin


More information about the freebsd-acpi mailing list