Bug 204391 - Overdrive on AMDGPU does not allow clocks above official clocks.
Summary: Overdrive on AMDGPU does not allow clocks above official clocks.
Status: RESOLVED WILL_NOT_FIX
Alias: None
Product: Drivers
Classification: Unclassified
Component: Video(DRI - non Intel) (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: drivers_video-dri
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-07-31 10:41 UTC by Haxk20
Modified: 2019-10-27 23:34 UTC (History)
0 users

See Also:
Kernel Version: 5.3rc1
Subsystem:
Regression: No
Bisected commit-id:


Attachments
dmesg with Overdrive enabled. (120.59 KB, text/plain)
2019-07-31 10:41 UTC, Haxk20
Details

Description Haxk20 2019-07-31 10:41:02 UTC
Created attachment 284063 [details]
dmesg with Overdrive enabled.

As the title of the bug says overdrive has a range that it operates in and thats good to not allow users to overclock the card to its death but there is a bug when overdrive is enabled it does not allow clocks for core or memory to be outside official clocks.
I have RX560X with 1275 Mhz on Core and 1450Mhz on Memory and when i enable overdrive i can increase voltage suplied to core or memory but im not allowed to set any clock above the official clocks.
If we try to do so it returns invalid argument as the file expected the clock to be in range.
[  914.519919] amdgpu: [powerplay] OD engine clock is out of range [214 - 1275] MHz
[ 1096.096840] amdgpu: [powerplay] OD memory clock is out of range [300 - 1450] MHz

I know for sure that this is not an GPU BIOS issue as in Windows we can indeed overclock the GPU way above the official clocks with some nice FPS boost in all games so the overclock there works.

But whats weird is also that if we disable Overdrive im allowed to overclock Core frequency but im not able to overclock memory frequency.

I think as im looking at the dmesg that it may have to do something with this:
[  383.163783] amdgpu: [powerplay] pp_dpm_get_sclk_od was not implemented.
[  383.163858] amdgpu: [powerplay] pp_dpm_get_mclk_od was not implemented.
And indeed when trying to look into that file it does not exist anywhere. Only file that exists that is close to it is pp_dpm_mclk/sclk.
Comment 1 Haxk20 2019-07-31 10:41:56 UTC
I forgot to add that this is an issue even before 5.3
Comment 2 Haxk20 2019-08-02 19:08:28 UTC
Can somebody look at this please ? I know this isnt experience breaking but when the driver has support for overclocking then it should at least work.
Comment 3 Haxk20 2019-08-03 18:47:56 UTC
Also to add to this pp_sclk_od is exposed even tho overdrive isnt enabled and indeed im allowed to overclock the GPU core and i indeed see the Core running at that frequency.
But i mean Core overclocking is nice and all but without memory OC its useless.
Comment 4 Haxk20 2019-08-03 23:21:21 UTC
After looking at OverDrive code it looks like this is PP table issue of my GPU VBIOS as it doesnt have OD range and so it cant find it thus only underclocking is allowed. Hardcoding the range in the kernel is surely a huge hack but indeed works and im able to overclock the card.
It would be useful to have an kernel argument that we can pass trough GRUB that would just disable this check as some laptops dont have this table.

Note You need to log in before you can comment on or make changes to this bug.