Bug 202140 - HP Z600 defaults to LAPIC for kern.eventtimer.timer but can't use 'Online CPU idle state' higher than C1 with this setting
Summary: HP Z600 defaults to LAPIC for kern.eventtimer.timer but can't use 'Online CPU...
Status: New
Alias: None
Product: Base System
Classification: Unclassified
Component: kern (show other bugs)
Version: 10.1-STABLE
Hardware: amd64 Any
: --- Affects Only Me
Assignee: freebsd-bugs (Nobody)
Depends on:
Reported: 2015-08-06 18:15 UTC by Jochen Breuer
Modified: 2016-02-24 09:19 UTC (History)
2 users (show)

See Also:


Note You need to log in before you can comment on or make changes to this bug.
Description Jochen Breuer 2015-08-06 18:15:30 UTC
This computer is comsuming 160 watt when idle. I was looking for a way to reduce that and was told to set 'hw.acpi.cpu.cx_lowest' to 'C3' or 'C8'.

If I'm setting 'hw.acpi.cpu.cx_lowest' to anything else than 'C1' the system stops working properly. Applications just stop - waiting forever. This can very easily be reproduced with ping. Starting to type anything on the shell "wakes" the computer up and applications start to respond and work again. A clean reboot is not possible with these settings.

Default for this computer for 'kern.eventtimer.timer' is 'LAPIC'. Allan Jude from BSD Now, who was guiding me through the whole process, told me to try 'HPET', which worked. Both 'C3' and 'C8' for 'hw.acpi.cpu.cx_lowest' are now possible without any downside effects.

Power consumption is down to around 90 watt with 'C8' and the system is working flawlessly and stable. Thanks Allan, Kris and last but not least TJ!

But it would be much nicer, if this would work right out of the box!

Some additional information:

--- Xeon E5520 ---

$ sysctl hw.|head
hw.machine: amd64
hw.model: Intel(R) Xeon(R) CPU           E5520  @ 2.27GHz
hw.ncpu: 8
hw.byteorder: 1234
hw.physmem: 8545079296
hw.usermem: 8300666880
hw.pagesize: 4096
hw.floatingpoint: 1
hw.machine_arch: amd64
hw.realmem: 8592031744

--- Event timer choices ---

$ sysctl kern.eventtimer.choice
kern.eventtimer.choice: LAPIC(400) HPET(350) HPET1(340) HPET2(340) HPET3(340) i8254(100) RTC(0)
Comment 1 Jochen Breuer 2016-02-23 21:04:00 UTC
I'm now having exactly the same problem with an older Samsung NC10 - a so called netbook.

'kern.eventtimer.timer' defaults to 'HPET'. But in this case the solution seems to be 'LAPIC'.

--- Event timer choices ---

$ sysctl kern.eventtimer.choice
kern.eventtimer.choice: HPET(450) HPET1(440) HPET2(440) LAPIC(400) i8254(100) RTC(0)

--- Intel Atom CPU N270 ---

$ sysctl hw.|head
hw.machine: i386
hw.model: Intel(R) Atom(TM) CPU N270   @ 1.60GHz
hw.ncpu: 2
hw.byteorder: 1234
hw.physmem: 1042579456
hw.usermem: 920571904
hw.pagesize: 4096
hw.floatingpoint: 1
hw.machine_arch: i386
hw.realmem: 1073741824
Comment 2 Ivan Klymenko 2016-02-23 21:34:29 UTC
Have you tried using these instructions completely? https://wiki.freebsd.org/TuningPowerConsumption
Comment 3 Jochen Breuer 2016-02-24 09:19:01 UTC
Hi Ivan, changing the timer solves the problem. But if those timers can't be used with C8, perhaps they shouldn't be the default in the first place.