Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 19 Apr 2011 17:43:32 -0500
From:      Peter Lai <cowbert@gmail.com>
To:        freebsd-stable@freebsd.org, freebsd-performance@freebsd.org
Subject:   t_delta too short while trying to enable C3/TurboBoost
Message-ID:  <BANLkTikaB5hC_ZxhA2Sg9zh15ZR0xCcQQA@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
Hello

I'm trying to enable C3 states to allow TurboBoost on RELENG_8_2 and
dmesg is throwing a lot of t_delta too short messages while using boot
-v.
This platform is 2x Xeon E5620 Gulftown quad core 2.4ghz CPUs on
whatever boards Dell ships them on these days (probably Intel X58
derivative.)
Kernel is GENERIC for the most part (with network drivers stripped out).

Timecounter "i8254" frequency 1193182 Hz quality 0
Calibrating TSC clock ... TSC clock: 2394012372 Hz
TSC: P-state invariant
ACPI timer: 1/2 1/2 1/1 1/2 1/2 1/1 1/2 1/2 1/2 1/1 -> 10
Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x808-0x80b on acpi0

Here are my loader.conf:

hint.p4tcc.0.disabled=1
hint.acpi_throttle.0.disabled=1
kern.hz=100
hint.apic.0.clock=0
hint.atrtc.0.clock=0

rc.conf:

performance_cpu_freq="NONE"     # Online CPU frequency
economy_cpu_freq="NONE"         # Offline CPU frequency
performance_cx_lowest="C3"     # Online CPU idle state
economy_cx_lowest="C3"         # Offline CPU idle state

and here is sysctl dev.cpu:

dev.cpu.0.%desc: ACPI CPU
dev.cpu.0.%driver: cpu
dev.cpu.0.%location: handle=\_PR_.CPU1
dev.cpu.0.%pnpinfo: _HID=none _UID=0
dev.cpu.0.%parent: acpi0
dev.cpu.0.cx_supported: C1/1 C2/64 C3/96
dev.cpu.0.cx_lowest: C3
dev.cpu.0.cx_usage: 0.90% 0.45% 98.64% last 4096us
dev.cpu.1.%desc: ACPI CPU
dev.cpu.1.%driver: cpu
dev.cpu.1.%location: handle=\_PR_.CPU2
dev.cpu.1.%pnpinfo: _HID=none _UID=0
dev.cpu.1.%parent: acpi0
dev.cpu.1.cx_supported: C1/1 C2/64 C3/96
dev.cpu.1.cx_lowest: C3
dev.cpu.1.cx_usage: 0.68% 0.34% 98.96% last 2965us
dev.cpu.2.%desc: ACPI CPU
dev.cpu.2.%driver: cpu
dev.cpu.2.%location: handle=\_PR_.CPU3
dev.cpu.2.%pnpinfo: _HID=none _UID=0
dev.cpu.2.%parent: acpi0
dev.cpu.2.cx_supported: C1/1 C2/64 C3/96
dev.cpu.2.cx_lowest: C3
dev.cpu.2.cx_usage: 0.94% 0.66% 98.38% last 2081us
dev.cpu.3.%desc: ACPI CPU
dev.cpu.3.%driver: cpu
dev.cpu.3.%location: handle=\_PR_.CPU4
dev.cpu.3.%pnpinfo: _HID=none _UID=0
dev.cpu.3.%parent: acpi0
dev.cpu.3.cx_supported: C1/1 C2/64 C3/96
dev.cpu.3.cx_lowest: C3
dev.cpu.3.cx_usage: 0.81% 0.58% 98.59% last 4124us
dev.cpu.4.%desc: ACPI CPU
dev.cpu.4.%driver: cpu
dev.cpu.4.%location: handle=\_PR_.CPU5
dev.cpu.4.%pnpinfo: _HID=none _UID=0
dev.cpu.4.%parent: acpi0
dev.cpu.4.cx_supported: C1/1 C2/64 C3/96
dev.cpu.4.cx_lowest: C3
dev.cpu.4.cx_usage: 1.07% 0.68% 98.23% last 5046us
dev.cpu.5.%desc: ACPI CPU
dev.cpu.5.%driver: cpu
dev.cpu.5.%location: handle=\_PR_.CPU6
dev.cpu.5.%pnpinfo: _HID=none _UID=0
dev.cpu.5.%parent: acpi0
dev.cpu.5.cx_supported: C1/1 C2/64 C3/96
dev.cpu.5.cx_lowest: C3
dev.cpu.5.cx_usage: 3.01% 1.74% 95.24% last 4504us
dev.cpu.6.%desc: ACPI CPU
dev.cpu.6.%driver: cpu
dev.cpu.6.%location: handle=\_PR_.CPU7
dev.cpu.6.%pnpinfo: _HID=none _UID=0
dev.cpu.6.%parent: acpi0
dev.cpu.6.cx_supported: C1/1 C2/64 C3/96
dev.cpu.6.cx_lowest: C3
dev.cpu.6.cx_usage: 2.45% 1.89% 95.65% last 3506us
dev.cpu.7.%desc: ACPI CPU
dev.cpu.7.%driver: cpu
dev.cpu.7.%location: handle=\_PR_.CPU8
dev.cpu.7.%pnpinfo: _HID=none _UID=0
dev.cpu.7.%parent: acpi0
dev.cpu.7.cx_supported: C1/1 C2/64 C3/96
dev.cpu.7.cx_lowest: C3
dev.cpu.7.cx_usage: 1.21% 0.77% 98.00% last 4180us

Should I increment kern.hz until the t_delta too short goes away (I
hear that at kern.hz=1000, each core is woken so much by the interrupt
counter that it can never enter C3 state) or is there another knob I
am supposed to tune? My goal is to see if I can get the box into
turboboost as much as possible during idle.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?BANLkTikaB5hC_ZxhA2Sg9zh15ZR0xCcQQA>