linux icon indicating copy to clipboard operation
linux copied to clipboard

[Regression[ - 5.14.14-xm2.0.fc35.x86_64 not longer ships usable amd-pstate

Open aenertia opened this issue 2 years ago • 7 comments

Thanks for AMD-pstate inclusion in - 5.14.14-xm1.0.fc35.x86_64

Worked well (test series if you are interested: https://openbenchmarking.org/result/2110226-TJ-AMDPSTATE39,2110213-TJ-PBO25AUTO59,2110191-TJ-PBO25THER16,2110213-TJ-PBO30018056,2110219-TJ-PBO50THER12,2110226-TJ-AMDPSTATE62&hgv=pbo50-therm76-x8&ppt=D&swl=1&hgv=pbo50-therm76-x8&ppt=D&swl=1&hgv=amdpstate-pbo50-therm760-x8&ppt=D&swl=1&hgv=amdpstate-pbo50-therm76-autoscal-ondemand&ppt=D

but whatever kernel config options were changed in 5.14.14-xm2.0.fc35.x86_64 - have resulted in acpi-cpufreq claiming the device. And there is no way to change the driver from acpi-cpufreq to amd-pstate at run time currently that I am aware of. I think this is likely related to config option for acpi-cpufreq set to Y rather than M possibly likewise for the amd-pstate module (Y rather than M).

The module is built and loadable in xm2; just not usable.

Perhaps this is an upstream bug which requires a mechanism in acpi-cpufreq and amd-pstate to allow for changing the driver on the fly. Previously intel-pstate required a specific disable toggle to revert to acpi-cpufreq, but I have found no evidence of the reverse (acpi-cpufreq to something else).

Originally posted by @aenertia in https://github.com/xanmod/linux/issues/203#issuecomment-949936450

aenertia avatar Oct 22 '21 20:10 aenertia

I have received several issue reports with this driver.

There is no boot parameter option to disable it, the developer added the option to compile it as a module, for this reason it was the best option I found to not disable it for everyone.

As we can see, this driver is not ready for production use yet (v2 patchset).

xanmod avatar Oct 23 '21 01:10 xanmod

Thanks - i've had good results with it so far in testing and I certainly see boost states being more responsive and subsequently better performance whilst using PBO curve optimizer based boosts with zen3.

You are quite correct that the original authors propose a v2 patchset for mainline so hopefully some of these niggles which appear to be with acpi-cpufreq expecting it to be the only legitimate driver fall out of that review process.

aenertia avatar Oct 23 '21 02:10 aenertia

As an related aside - there has been a screed of PBO2 Ryzen optimization threads in various places and forums. As you can see from the test sequence https://openbenchmarking.org/result/2110228-TJ-AMDPSTATE42,2110227-TJ-AMDPSTATE84,2110221-TJ-AMDPSTATE95,2110221-TJ-AMDPSTATE95,2110222-TJ-AMDPSTATE16,2110229-TJ-AMDPSTATE54,2110226-TJ-AMDPSTATE39,2110213-TJ-PBO25AUTO59,2110191-TJ-PBO25THER16,2110213-TJ-PBO30018056,2110219-TJ-PBO50THER12,2110226-TJ-AMDPSTATE62&hgv=pbo50-therm76-x8&ppt=D&swl=1&hgv=pbo50-therm76-x8&ppt=D&swl=1&hgv=amdpstate-pbo50-therm760-x8&ppt=D&swl=1&hgv=amdpstate-pbo50-therm76-autoscal-ondemand&ppt=D&swl=1&hgv=amdpstate-pbo50-autosc-therm81&ppt=D&swl=1&hgv=amdpstate-pbo25-therm76-autos&ppt=D&swl=1&hgv=amdpstate-pbo25-therm76-autos-ondemand&ppt=D&swl=1&hgv=amdpstate-pbo200-autos-therm76&ppt=D&swl=1&hgv=amdpstate-pbo200-autos-therm76&ppt=D&swl=1&hgv=amdpstate-pbo75-therm76-autos&ppt=D

The best way to optimize boost states and boosts is to leave things at default (or use a tuned per core undervolt matching the CPPC tags that ship with each chip) and simply lower the thermal target down based on your individual cooling situation. For me that is lowering the Thermal limit to 76 Deg (Defaults are set at 90 Deg for Ryzen 5000). This limits PPT/EDC/TDC naturally and there is no instability caused by tweaking those values individually as many guides suggest.

aenertia avatar Oct 23 '21 02:10 aenertia

the module works fine if you instruct it to load at boot time. you should be able to load the module at boot by creating /etc/modules-load.d/amd-pstate.conf with "amd_pstate" as the contents. as long as this loads before the cpufreq driver, you should be ok. alternatively you can just set the X86_AMD_PSTATE option to "y" and rebuild the kernel yourself.

cassandracomar avatar Oct 27 '21 20:10 cassandracomar

I tried; because in xm2 the acpi_cpufreq is built in even adding kernel grub option to blacklist it fail to allow amd_pstate to 'grab' it; and as there isn't an init_handle for the acpi_cpufreq when it is built in then you can't unhook it.

Things tried;

adding amd_pstate to dracut initrd adding amd_pstate=on to kernel command line adding acpi-cpufreq to modprobe.d/blacklist.conf adding modules.blacklist=acpi_cpufreq to kernel command line

On Thu, Oct 28, 2021 at 9:51 AM Cassandra Comar @.***> wrote:

the module works fine if you instruct it to load at boot time. you should be able to load the module at boot by creating /etc/modules-load.d/amd-pstate.conf with "amd_pstate" as the contents. as long as this loads before the cpufreq driver, you should be ok. alternatively you can just set the X86_AMD_PSTATE option to "y" and rebuild the kernel yourself.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/xanmod/linux/issues/208#issuecomment-953300738, or unsubscribe https://github.com/notifications/unsubscribe-auth/AACF5LZ2UCMSHENCUKQ5GITUJBQ33ANCNFSM5GRKJPTA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

aenertia avatar Oct 27 '21 20:10 aenertia

Just to further clarify, acpi_cpufreq generally should not be configured as a built-in module as it will supercede the ability to use other frequency schedulers. This is the default in i.e fedora

On Thu, Oct 28, 2021 at 9:55 AM Joel Wirāmu Pauling @.***> wrote:

I tried; because in xm2 the acpi_cpufreq is built in even adding kernel grub option to blacklist it fail to allow amd_pstate to 'grab' it; and as there isn't an init_handle for the acpi_cpufreq when it is built in then you can't unhook it.

Things tried;

adding amd_pstate to dracut initrd adding amd_pstate=on to kernel command line adding acpi-cpufreq to modprobe.d/blacklist.conf adding modules.blacklist=acpi_cpufreq to kernel command line

On Thu, Oct 28, 2021 at 9:51 AM Cassandra Comar @.***> wrote:

the module works fine if you instruct it to load at boot time. you should be able to load the module at boot by creating /etc/modules-load.d/amd-pstate.conf with "amd_pstate" as the contents. as long as this loads before the cpufreq driver, you should be ok. alternatively you can just set the X86_AMD_PSTATE option to "y" and rebuild the kernel yourself.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/xanmod/linux/issues/208#issuecomment-953300738, or unsubscribe https://github.com/notifications/unsubscribe-auth/AACF5LZ2UCMSHENCUKQ5GITUJBQ33ANCNFSM5GRKJPTA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

aenertia avatar Oct 29 '21 03:10 aenertia

so I got the amd_pstate module to load just by ensuring that it was loaded prior to acpi_cpufreq in /etc/modules.d/:

 $ sudo cpupower frequency-info
analyzing CPU 0:
  driver: amd-pstate
  CPUs which run at the same hardware frequency: 0
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency: 131 us
  hardware limits: 400 MHz - 4.68 GHz
  available cpufreq governors: performance schedutil
  current policy: frequency should be within 400 MHz and 4.68 GHz.
                  The governor "schedutil" may decide which speed to use
                  within this range.
  current CPU frequency: Unable to call hardware
  current CPU frequency: 3.18 GHz (asserted by call to kernel)
  boost state support:
    Supported: yes
    Active: yes
    AMD PSTATE Highest Performance: 166. Maximum Frequency: 4.68 GHz.
    AMD PSTATE Nominal Performance: 117. Nominal Frequency: 3.30 GHz.
    AMD PSTATE Lowest Non-linear Performance: 39. Lowest Non-linear
Frequency: 1.10 GHz.
    AMD PSTATE Lowest Performance: 15. Lowest Frequency: 400 MHz.

is your distro loading acpi_cpufreq from initrd or something? because specifying the module load order explicitly should ensure this driver gets preference.

also, just to confirm, your cpu is Zen 3, correct? the amd_pstate driver will fall back to acpi_cpufreq if you have Zen 2 or older for the time being. I believe they intend to fix this prior to merge into mainline.

On Thu, Oct 28, 2021 at 11:51 PM Joel Wirāmu Pauling < @.***> wrote:

Just to further clarify, acpi_cpufreq generally should not be configured as a built-in module as it will supercede the ability to use other frequency schedulers. This is the default in i.e fedora

On Thu, Oct 28, 2021 at 9:55 AM Joel Wirāmu Pauling @.***> wrote:

I tried; because in xm2 the acpi_cpufreq is built in even adding kernel grub option to blacklist it fail to allow amd_pstate to 'grab' it; and as there isn't an init_handle for the acpi_cpufreq when it is built in then you can't unhook it.

Things tried;

adding amd_pstate to dracut initrd adding amd_pstate=on to kernel command line adding acpi-cpufreq to modprobe.d/blacklist.conf adding modules.blacklist=acpi_cpufreq to kernel command line

On Thu, Oct 28, 2021 at 9:51 AM Cassandra Comar @.***> wrote:

the module works fine if you instruct it to load at boot time. you should be able to load the module at boot by creating /etc/modules-load.d/amd-pstate.conf with "amd_pstate" as the contents. as long as this loads before the cpufreq driver, you should be ok. alternatively you can just set the X86_AMD_PSTATE option to "y" and rebuild the kernel yourself.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/xanmod/linux/issues/208#issuecomment-953300738, or unsubscribe < https://github.com/notifications/unsubscribe-auth/AACF5LZ2UCMSHENCUKQ5GITUJBQ33ANCNFSM5GRKJPTA

. Triage notifications on the go with GitHub Mobile for iOS < https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675

or Android < https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub .

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/xanmod/linux/issues/208#issuecomment-954407856, or unsubscribe https://github.com/notifications/unsubscribe-auth/AACOKBA2KKNFN4SF2QZRJ2DUJIK3LANCNFSM5GRKJPTA .

cassandracomar avatar Oct 29 '21 16:10 cassandracomar