Feature #14047
closedOptions to control Intel Speed Shift
100%
Description
pfSense 23.01 and 2.7 supports Intel Speed Shift by default via the hwpstate_intel(4) driver.
This enables hardware CPU P-state control for CPUs that support it. Generally anything Gen 6 or newer.
It's enabled by default and overrides OS P-state control, powerd, so users upgrading experience unexpected CPU clock frequency.
We should add a gui toggle for the loader value: hint.hwpstate_intel.0.disabled
That might want to be selectable instead of powerd.
By default it sets the performance preference to 50 but we should probably allow setting that in the gui via the per core sysctl: dev.hwpstate_intel.%d.epp
In practice higher values like 80 or 90 seem to more accurately reflect what powerd at high-adv does. However Speed Shift is able to switch far faster so it's expected the instantaneous CPU clock speed would be different.
Related issues
Updated by riva geeza over 1 year ago
This affected myself, on my newly built appliance the gui displayed Intel(R) Celeron(R) N5105 @ 2.00GHz
Current: 2608 MHz, Max: 1996 MHz
It was enough to make me question whether or not the hardware was faulty.
I've had to set the values to 98 in my case to stop the CPU frequency from going crazy, and since doing so my CPU temps have dropped by 6 degrees.
Updated by Jim Pingle over 1 year ago
- Has duplicate Feature #14251: Add option to disable Intel Speed Shift so that Intel Speed Step can kick in added
Updated by Jim Pingle over 1 year ago
- Plus Target Version changed from 23.05 to 23.09
Updated by Jim Pingle about 1 year ago
- Target version changed from 2.7.0 to CE-Next
Updated by Jim Pingle 12 months ago
- Has duplicate Bug #14700: High CPU Temperature in CE 2.7 added
Updated by Jim Pingle 12 months ago
- Subject changed from Add webgui control options for Intel Speed Shift to Options to control Intel Speed Shift
- Category changed from Web Interface to Hardware / Drivers
- Assignee set to Jim Pingle
- Target version changed from CE-Next to 2.8.0
Updated by Jim Pingle 12 months ago
- Status changed from In Progress to Feedback
- % Done changed from 0 to 100
Applied in changeset 93f8b28797a2b618f96589c916128019231f027e.
Updated by Danilo Zrenjanin 11 months ago
Tested against:
pfSense release:
23.09.a.20230907.0600
Processor:
Intel Xeon® 4116 2.1GHz
I had limited access to the device with this processor, so I didn't have an opportunity for extended testing. I will leave it in feedback status for another round of testing.
Based on my observation, it appears to be functioning as intended.
Updated by Ronald Schellberg 11 months ago
Jim Pingle wrote in #note-9:
Applied in changeset 93f8b28797a2b618f96589c916128019231f027e.
Tested since first deployment on a i7-1265u using recommended core level control. Tried the range of the power preference with expected results. Frequency change is responsive without having to reboot. Currently operating at level 30 though acceptable performance is achieved at both ends of the slider with this processor. Only notice a degree change in package temperatures.
Updated by Jim Pingle 11 months ago
- Status changed from Feedback to Resolved
Jordan G wrote in #note-11:
I didn't see any gui toggle when testing 23.09-DEVELOPMENT-amd64-20230909-1856, I was testing virtualized but it was seeing 9th gen Intel processor. This would be situated close to powerd settings or tunables?
It would show up right above PowerD since, when active, it takes precedence over PowerD. The GUI will only show the options on the page if the driver has attached. Even if you exposed the proper CPU to a guest it doesn't necessarily mean it would expose the hpwstate device. At the moment I would only consider it a valid test when running on bare metal.
And since there are multiple other reports of it working as expected, I'd say we can close this out. If anyone has a problem from here forward we can treat it as a separate issue.
Updated by Andre Brait 11 months ago
riva geeza wrote in #note-1:
This affected myself, on my newly built appliance the gui displayed Intel(R) Celeron(R) N5105 @ 2.00GHz
Current: 2608 MHz, Max: 1996 MHz
Not sure if anyone noticed, but the Max clock speed is wrong. For my N100 it shows up as 800MHz and it should be 3.4GHz (and I've seen the N100 hit 3.4GHz but the Max field kept showing 800MHz).
And I don't mean to hijack the Issue here, but are there any talks on exposing the tunable "hw.acpi.cpu.cx_lowest" in some way as well? It seems to be stable for most (if not all?) hardware configurations and seems to allow up to C3/C6/C8 on most (if not all?) Intel platforms that support C-states above C1 (even though "sysctl" reports C3 as the maximum, using Cmax brings my N100 to C8 just fine, it seems).
EDIT: sorry, I had not noticed this is already marked as "Resolved". I'll move this somewhere else!