Bug 108573 - Cannot set pstate values with under-voltage values for Vega M
Summary: Cannot set pstate values with under-voltage values for Vega M
Status: RESOLVED MOVED
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/AMDgpu (show other bugs)
Version: unspecified
Hardware: x86-64 (AMD64) Linux (All)
: medium enhancement
Assignee: Default DRI bug account
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-10-26 23:54 UTC by Robert Strube
Modified: 2019-11-19 09:00 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments

Description Robert Strube 2018-10-26 23:54:58 UTC
There are some folks on the Windows side of the fence that have had great success under-volting their Vega M chips to improve thermals (and because TDP is shared between the CPU and GPU on Kaby Lake G, also their overall performance).

Following information from the amdgpu kernel documentation I applied the following kernel boot parameters:

amdgpu.runpm=0 amdgpu.ppfeaturemask=0xffffffff

Note: I needed the runpm=0 so that the Vega M is active at all times, otherwise it powers down and I'm unable to make any changes to the pstates using the sysfs API.

Then doing the following I was able to see the current pstates:

cat /sys/bus/pci/drivers/amdgpu/0000:01:00.0/pp_od_clk_voltage

OD_SCLK:
0:        225MHz        750mV
1:        400MHz        750mV
2:        535MHz        750mV
3:        715MHz        750mV
4:        850MHz        750mV
5:        960MHz        750mV
6:        985MHz        750mV
7:       1011MHz        750mV
OD_MCLK:
0:        300MHz        750mV
1:        500MHz        750mV
2:        700MHz        750mV
OD_RANGE:
SCLK:     225MHz       1011MHz
MCLK:     300MHz        700MHz
VDDC:     750mV         750mV

Then this to support updating the pstates:

echo "manual" > /sys/bus/pci/drivers/amdgpu/0000:01:00.0/power_dpm_force_performance_level

Then I could push in new pstates values, provided the voltage was *exactly* 750mV.  I could set a higher clock speed for a pstate, but I was unable to make any changes to the voltage.

echo "s 0 226 750" > /sys/bus/pci/drivers/amdgpu/0000:01:00.0/pp_od_clk_voltage

works and increases the MHz from 225 -> 226 for pstate 0, but

echo "s 0 226 749" > /sys/bus/pci/drivers/amdgpu/0000:01:00.0/pp_od_clk_voltage
-bash: echo: write error: Invalid argument

Checking dmesg I see that the voltage range is constrained between 750 and 750.

[ 4362.487021] amdgpu: [powerplay] OD voltage is out of range [750 - 750] mV

Would it be possible to add support for under-volting Vega M using the sysfs API?

I also noticed that it's not possible to set any pstate higher than 1011 MHz, perhaps that's a harder sell, but it might also be nice to be able to overclock the Vega M a little!

P.S. I tried finding these values in the kernel source code, but I was extremely confused about the way they are defined.  I figured worse case scenario I could manually modify these limits and recompile the kernel.

Thanks!
Rob
Comment 1 Martin Peres 2019-11-19 09:00:45 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/drm/amd/issues/574.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.