Opened 4 years ago

Last modified 4 years ago

#16504 new bug

My system with Intel J3455 runs always at 1.5 ghz — at Version 15

Reported by: LowTech Owned by: nobody
Priority: normal Milestone: Unscheduled
Component: System Version: R1/beta2
Keywords: Enhanced Intel SpeedStep J3455 Cc:
Blocked By: Blocking:
Platform: All

Description (last modified by LowTech)

Hi, installed Haiku R1/beta2 on my mini pc along with Windows and Linux. Haiku runs fine except a tiny boot glitch (https://discuss.haiku-os.org/t/r1-beta2-uefi-boot-issue/9915/7) and no audio.

The bug report is about a different issue: the cpu clock stucks at a single frequency. Not only programs run slower than on Windows/Linux, also the cpu gets hot and the fan spins most of the time. The cpu seems switching never to 600/800 mhz when idle. (https://discuss.haiku-os.org/t/why-do-chess-engines-run-slow-on-haiku/9929/14)


Issue supporting Enhanced Intel SpeedStep Technology

2543 KERN: no valid cpufreq module found

Because of the missing cpufreq module, Haiku can't change neither to lower clocks (down to 800mhz) when idle, nor higher (up to 2.3ghz) under load.

The cpu J3455 runs the whole time at it's default frequency of 1.5ghz. Windows and Linux don't have this problem on the same real hardware.

Change History (18)

comment:1 by tqh, 4 years ago

Please describe hardware, exact model is preferable.

comment:2 by LowTech, 4 years ago

ACEPC AK2 (https://iacepc.com/Index/cases/caseinfo?case_id=213)

CPU: Intel Celeron J3455
GPU: Intel HD Graphics 500
RAM: 4GB DDR3L
Hard Disk 1: 64 GB EMMC
Hard Disk 2: 256GB mSATA SSD
Expansion options: Install 2.5-Inch HDD/SSD, SD Card
Wi-Fi: 2.4G/5G Built-in Wi-Fi
Bluetooth: BT 4.0

comment:3 by tqh, 4 years ago

They seem to have quite poor firmware handling. Here is the closest to official info, you need a BIOS update with an EC (embedded controller) that can control fans: https://www.iacepc.com/forum/viewtopic.php?p=1073#p1073

We are too small to handle bad manufacturer fw, so I recommend upgrading your fw first. Unless you can switch hardware.

comment:4 by LowTech, 4 years ago

Thanks for looking into!

The included EC firmware is for a different system (AK3 with cpu J4125). The fan on the AK2 has no problem with other os. It seems normal that it spins more on Haiku, because the cpu clock is stuck at 1.5ghz.

Isn't clocking managed by the cpu itself and the os via ACPI? But not by the embedded controller? Would it help to add some Linux log files?

comment:5 by LowTech, 4 years ago

Linux:

~> cat dmesg.txt | grep EC:

[    0.227017] ACPI: EC: EC started
[    0.227019] ACPI: EC: interrupt blocked
[    0.338580] ACPI: \_SB_.PCI0.SBRG.H_EC: Used as first EC
[    0.338584] ACPI: \_SB_.PCI0.SBRG.H_EC: GPE=0x2c, EC_CMD/EC_SC=0x66, EC_DATA=0x62
[    0.338586] ACPI: \_SB_.PCI0.SBRG.H_EC: Boot DSDT EC used to handle transactions
[    0.391832] ACPI: EC: interrupt unblocked
[    0.391901] ACPI: EC: event unblocked
[    0.391927] ACPI: \_SB_.PCI0.SBRG.H_EC: GPE=0x2c, EC_CMD/EC_SC=0x66, EC_DATA=0x62
[    0.391930] ACPI: \_SB_.PCI0.SBRG.H_EC: Boot DSDT EC used to handle transactions and events

~> cat dmesg.txt | grep error

[    6.651025] EDAC pnd2: Failed to register device with error -22.
[    6.735578] EDAC pnd2: Failed to register device with error -22.
[    6.779803] EDAC pnd2: Failed to register device with error -22.
[    6.866720] EDAC pnd2: Failed to register device with error -22.

comment:6 by tqh, 4 years ago

Windows (and often Linux) install hw specific drivers for fan control. Haiku doesn't, as it is a huge undertaking, so it relies on ACPI and EC to handle it. In almost all ACPI specs it is requirement that ACPI does handle fan control unless OS takes over so not sure if I'd trust this manufacturer.

If fw upgrade doesn't fix things I think your hardware is very unlikely to run Haiku well. You can try to figure out what drivers control CPU/fan in Linux and it might be possible for you to port those over.

comment:7 by LowTech, 4 years ago

Sorry for following up. I don't request some fan control for my pc, because it works perfect!

But, as the cpu runs at a single frequency, Intel Speedstep is broken on Haiku for this system.


From Intels website:

CPU - supported

Chipset - supported

Motherboard - supported

BIOS - supported, it does SpeedStep on Windows & Linux

Drivers - No specific software or driver updates are currently required.

OS - An OS must support Enhanced Intel SpeedStep Technology.

https://www.intel.com/content/www/us/en/support/articles/000007073/processors.html

What are the system requirements to support Enhanced Intel Speedstep® Technology?
The CPU, chipset, motherboard, BIOS, Operating System, and software/drivers must support Enhanced Intel SpeedStep Technology.

CPU:
Consult the product specifications and comparisons to see which processors support Enhanced Intel SpeedStep Technology.
Chipset:
A motherboard with one of the following chipsets is required to support Enhanced Intel SpeedStep Technology: Intel® 910 / 915x / 925X / XE Express Chipset Family or Intel® 945x / 946x / 955X / 975 / 965 / 963 Express Chipset Family, Intel® 3 Series Chipsets, Intel® 4 Series Chipsets, Intel® 5 Series Chipsets, or Intel® 6 Series Chipsets.
Motherboard:
The system board must support Dynamic Voltage Identification (Dynamic VID). All Intel® Desktop Boards support Dynamic VID. For all others, contact your motherboard manufacturer for specific Dynamic VID support.
BIOS:
A BIOS must support Enhanced Intel SpeedStep Technology. For Boxed Intel® Desktop Boards, see Intel® Desktop Boards For all others, contact your motherboard manufacturer.
Operating system:
An OS must support Enhanced Intel SpeedStep Technology. Current supporting operating systems include: Microsoft Windows Vista*, Microsoft Windows XP SP2*, and Microsoft Windows 7*. Linux* support is also available. Contact your OS vendor for more information.
Software/Drivers:
No specific software or driver updates are currently required. However, we recommend that you always have the latest drivers for your system hardware.

comment:8 by ttcoder, 4 years ago

This might or might not be relevant -- they seem to be studying a similar problem : https://github.com/genodelabs/genode/issues/3871

comment:9 by tqh, 4 years ago

Sorry I misread the description. Then it seems very likely that it is something like ttcoder suggests. We do have a driver for intel cpus, but maybe the celerons are special in some way.

comment:10 by tqh, 4 years ago

Also, please don't gzip text-attachments, it's not readable without downloading and unzipping then. So please re-upload uncompressed.

by LowTech, 4 years ago

Attachment: syslog.txt added

by LowTech, 4 years ago

Attachment: sysinfo.txt added

by LowTech, 4 years ago

Attachment: dmesg.txt added

comment:11 by LowTech, 4 years ago

Ups .. sorry .. done!

Last edited 4 years ago by LowTech (previous) (diff)

comment:12 by tqh, 4 years ago

Can't see anything in logs, so maybe check if there is any thread that is at 100% all the time? Here is Haiku cpu idle info:

2543	KERN: no valid cpufreq module found
2544	KERN: using Intel C-States: C0, C1, C3, C4, C5, C6, C7
2545	KERN: found cpuidle module: power/cpuidle/intel_cstates/v1

comment:13 by tqh, 4 years ago

And Linux:

312	[    0.183370] cpuidle: using governor ladder
313	[    0.183370] cpuidle: using governor menu
...
571	[    1.016541] intel_idle: MWAIT substates: 0x11242020
572	[    1.016543] intel_idle: v0.4.1 model 0x5C
573	[    1.017098] intel_idle: lapic_timer_reliable_states 0xffffffff

Not sure if there is more I can contribute.

comment:14 by LowTech, 4 years ago

Isn't the message

2543 KERN: no valid cpufreq module found

the key to the problem?

Haiku calls neither for lower clocks (down to 800mhz) when idle, nor higher (up to 2.3ghz) when under load. Because of the missing cpufreq module! So the J3455 runs the whole time at it's default frequency of 1.5ghz.

For proper working, I would have expected a Haiku log entry with something like

KERN: found cpufreq module: power/cpufreq/intel_pstates ...

comment:15 by LowTech, 4 years ago

Description: modified (diff)
Note: See TracTickets for help on using tickets.