NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
kern/59932: Setting CPU frequencies on Zen 3 systems is problematic
Note: There was a bad value `' for the field `Class'.
It was set to the default value of `sw-bug'.
>Number: 59932
>Category: kern
>Synopsis: Setting CPU frequencies on Zen 3 systems is problematic
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: kern-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Tue Jan 20 01:00:00 +0000 2026
>Originator: John Klos
>Release: NetBSD 11.0_BETA
>Organization:
>Environment:
System: NetBSD bunny.zia.io 11.0_BETA NetBSD 11.0_BETA (BUNNY) #0: Wed Oct 15 11:51:33 UTC 2025 john%bunny.zia.io@localhost:/usr/obj-amd64/sys/arch/amd64/compile/BUNNY amd64
Architecture: x86_64
Machine: amd64
>Description:
On multiple Zen 3 systems (Ryzen 5500, 5700X):
sysctl -a | grep freq
machdep.dmi.processor-frequency = 3400 MHz
machdep.tsc_freq = 3393633000
machdep.cpu.frequency.target = 3400
machdep.cpu.frequency.current = 3400
machdep.cpu.frequency.available = 3400 2800 2200
Changing the frequency works. However, after setting frequency.target to 3401 (which is 3400, with turbo clocking enabled, IIRC), all future attempts to set the clock fail:
sysctl -w machdep.cpu.frequency.target=3400
sysctl: machdep.cpu.frequency.target: Device not configured
sysctl -w machdep.cpu.frequency.target=2200
sysctl: machdep.cpu.frequency.target: Device not configured
On each attempt to change CPU frequency, the kernel prints:
[ 2823136.558871] acpicpu0: autoconfiguration error: failed to get frequency (err 22)
[ 2823141.718910] acpicpu1: autoconfiguration error: failed to get frequency (err 22)
After a while, "target" goes away:
sysctl -a | grep freq
machdep.dmi.processor-frequency = 3400 MHz
machdep.tsc_freq = 3393633000
machdep.cpu.frequency.available = 3400 2800 2200
This doesn't happen on a Bulldozer, nor on a Ryzen 7900, nor on a Ryzen 9700X.
This happens with NetBSD 10 and NetBSD 11/amd64.
>How-To-Repeat:
sysctl -w machdep.cpu.frequency.target=2200
sysctl -w machdep.cpu.frequency.target=3400
(works)
sysctl -w machdep.cpu.frequency.target=3401
(also works)
sysctl -w machdep.cpu.frequency.target=3400
(doesn't work, nor does any future attempts to change the target)
>Fix:
>Unformatted:
Home |
Main Index |
Thread Index |
Old Index