Skip to content

Support for newer AMD CPU power states #8008

@Geblaat

Description

@Geblaat

Qubes OS release

4.1

Brief summary

CPU frequencies do not seem to scale properly, at least for the lower frequencies.

Steps to reproduce

Tested on:

Lenovo Thinkpad L14 Gen 3 AMD with Ryzen 7 Pro 5875u
Latest BIOS from Dec. 2022
Kernel: 6.1.5-1
EFI install.

(Also reported by @lunarthegrey on Ryzen 7 Pro 3700u on R4.0 with kernel 5.4.10-1: #4604 (comment))

In dom0, sudo xenpm get-cpufreq-para

Expected behavior

A low minimum frequency should be shown for powersaving and a maximum frequency of 4500MHz.
Frequencies should be able to be used.

Maybe implement amd p-state driver.

Actual behavior

Minimum frequency shown is 1600MHz and maximum is only 2000MHz:

cpu id               : 0
affected_cpus        : 0
cpuinfo frequency    : max [2000000] min [1600000] cur [1600000]
scaling_driver       : powernow
scaling_avail_gov    : userspace performance powersave ondemand
current_governor     : ondemand
  ondemand specific  :
    sampling_rate    : max [10000000] min [10000] cur [20000]
    up_threshold     : 80
scaling_avail_freq   : 2000000 1800000 *1600000
scaling frequency    : max [2000000] min [1600000] cur [1600000]
turbo mode           : enabled

Changing governor to performance does not work.
BIOS setting to set CPU power usage to auto-saving does not make any difference.

Only 3 P states are reported:
sudo xenpm get-cpufreq-states
cpu id               : 0
total P-states       : 3
usable P-states      : 3
current frequency    : 1600 MHz
P0         [2000 MHz]: transition [                1467]
                       residency  [               24856 ms]
P1         [1800 MHz]: transition [                  96]
                       residency  [                 587 ms]
*P2        [1600 MHz]: transition [                1434]
                       residency  [               90121 ms]

Just as the reporter of issue #4604 mentioned later, when using 'xenpm start 1', the average frequency reported under load are actually higher than the reported maximum. I've seen 4000-4100MHz under load.
When idle, it is never lower than 1600MHz though.

Notes

It is also necessary to use clocksource=tsc tsc=unstable hpetbroadcast=0 for proper performance. Not sure if related:
#6055

Metadata

Metadata

Assignees

No one assigned

    Labels

    C: otherNo other component ("C:") label applies to this issue, or the appropriate label is not yet known.P: defaultPriority: default. Default priority for new issues, to be replaced given sufficient information.hardware supportThis issue pertains to the hardware that Qubes OS supports.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions