ACPI/power implementation causing performance loss with
i7/Nehalem turbo boost
Kevin Day
toasty at dragondata.com
Sat Mar 6 07:03:30 UTC 2010
On Mar 6, 2010, at 12:05 AM, Daniel O'Connor wrote:
> On Sat, 6 Mar 2010, Kevin Day wrote:
>> So, it seems that the VMware hypervisor is deactivating cores on the
>> CPU when idle, but FreeBSD itself isn't. Is anyone working on giving
>> FreeBSD's idle loop/scheduler the ability to go into deeper sleep
>> states? It seems this would have more than just a power savings
>> benefit now.
>
> What does "sysctl dev.cpu.0.cx_lowest" say?
> And "sysctl dev.cpu.$N.cx_supported" ?
>
dev.cpu.0.cx_supported: C1/3 C2/205 C3/245
dev.cpu.0.cx_lowest: C1
dev.cpu.0.cx_usage: 100.00% 0.00% 0.00% last 500us
> ISTR FreeBSD defaults to a very conservative setting here so you may
> have to set it manually.
>
Yeah, sorry for not mentioning that I had tried this and didn't see any change, so I thought I was on the wrong track.
# sysctl hw.acpi.cpu.cx_lowest=C3
hw.acpi.cpu.cx_lowest: C1 -> C3
but it doesn't look like it's ever leaving C1:
hw.acpi.cpu.cx_lowest: C3
dev.cpu.0.cx_supported: C1/3 C2/205 C3/245
dev.cpu.0.cx_lowest: C3
dev.cpu.0.cx_usage: 100.00% 0.00% 0.00% last 500us
dev.cpu.1.cx_supported: C1/3 C2/205 C3/245
dev.cpu.1.cx_lowest: C3
dev.cpu.1.cx_usage: 100.00% 0.00% 0.00% last 500us
dev.cpu.2.cx_supported: C1/3 C2/205 C3/245
dev.cpu.2.cx_lowest: C3
dev.cpu.2.cx_usage: 100.00% 0.00% 0.00% last 500us
dev.cpu.3.cx_supported: C1/3 C2/205 C3/245
dev.cpu.3.cx_lowest: C3
dev.cpu.3.cx_usage: 100.00% 0.00% 0.00% last 500us
dev.cpu.4.cx_supported: C1/3 C2/205 C3/245
dev.cpu.4.cx_lowest: C3
dev.cpu.4.cx_usage: 100.00% 0.00% 0.00% last 500us
dev.cpu.5.cx_supported: C1/3 C2/205 C3/245
dev.cpu.5.cx_lowest: C3
dev.cpu.5.cx_usage: 100.00% 0.00% 0.00% last 500us
dev.cpu.6.cx_supported: C1/3 C2/205 C3/245
dev.cpu.6.cx_lowest: C3
dev.cpu.6.cx_usage: 100.00% 0.00% 0.00% last 500us
dev.cpu.7.cx_supported: C1/3 C2/205 C3/245
dev.cpu.7.cx_lowest: C3
dev.cpu.7.cx_usage: 100.00% 0.00% 0.00% last 500us
Is the note about adding hint.apic.0.clock=0 mentioned on http://wiki.freebsd.org/TuningPowerConsumption needed to leave C1 at all on SMP systems?
-- Kevin
Just in case it helps anyone else:
CPU: Intel(R) Xeon(R) CPU E5520 @ 2.27GHz (2270.06-MHz K8-class CPU)
Origin = "GenuineIntel" Id = 0x106a5 Stepping = 5
Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
Features2=0x9ce3bd<SSE3,DTES64,MON,DS_CPL,VMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,DCA,SSE4.1,SSE4.2,POPCNT>
AMD Features=0x28100800<SYSCALL,NX,RDTSCP,LM>
AMD Features2=0x1<LAHF>
TSC: P-state invariant
FreeBSD/SMP: Multiprocessor System Detected: 8 CPUs
FreeBSD/SMP: 1 package(s) x 4 core(s) x 2 SMT threads
cpu0 (BSP): APIC ID: 16
cpu1 (AP): APIC ID: 17
cpu2 (AP): APIC ID: 18
cpu3 (AP): APIC ID: 19
cpu4 (AP): APIC ID: 20
cpu5 (AP): APIC ID: 21
cpu6 (AP): APIC ID: 22
cpu7 (AP): APIC ID: 23
More information about the freebsd-hackers
mailing list