From mboxrd@z Thu Jan 1 00:00:00 1970
From: bugzilla-daemon@freedesktop.org
Subject: [Bug 108573] Cannot set pstate values with under-voltage values for
Vega M
Date: Fri, 26 Oct 2018 23:54:58 +0000
Message-ID:
Bug ID
108573
Summary
Cannot set pstate values with under-voltage values for Vega M
Product
DRI
Version
unspecified
Hardware
x86-64 (AMD64)
OS
Linux (All)
Status
NEW
Severity
normal
Priority
medium
Component
DRM/AMDgpu
Assignee
dri-devel@lists.freedesktop.org
Reporter
rstrube@gmail.com
There are some folks on the Windows side of the fence that hav=
e had great
success under-volting their Vega M chips to improve thermals (and because T=
DP
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=3D0 amdgpu.ppfeaturemask=3D0xffffffff
Note: I needed the runpm=3D0 so that the Vega M is active at all times, oth=
erwise
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 MH=
z,
perhaps that's a harder sell, but it might also be nice to be able to overc=
lock
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