https://bugs.freedesktop.org/show_bug.cgi?id=69721
Priority: medium Bug ID: 69721 Assignee: dri-devel@lists.freedesktop.org Summary: Can't reach maximum memory speed (or core speed) when using dpm=1 on r600g Severity: normal Classification: Unclassified OS: All Reporter: alexandre.f.demers@gmail.com Hardware: All Status: NEW Version: XOrg CVS Component: DRM/Radeon Product: DRI
After fixing bug 68235, it appears the maximum memory speed (or core speed) can't always be reached. This situation depends on the voltage tweaking seen on some cards. As an exemple, XFX HD-695X-ZNDC has the following maximum values: max_sclk_vddc->80000, max_mclk_vddci->125000, max_mclk_vddc->125000. However, the maximum memory clock value should be 130000 and the core clock should be 83000.
As Alex Deucher explained: "This patch set works around the issue by limiting the sclk and mclk to the highest levels listed in the clk/voltage dependency tables. I'll need to dig a bit more internally to try and figure out how to handle these clks properly."
https://bugs.freedesktop.org/show_bug.cgi?id=69721
--- Comment #1 from Alexandre Demers alexandre.f.demers@gmail.com --- That is with kernel 3.11.0 or 3.12-rc1 with the two patches proposed in bug 68235.
https://bugs.freedesktop.org/show_bug.cgi?id=69721
Alexandre Demers alexandre.f.demers@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- See Also| |https://bugs.freedesktop.or | |g/show_bug.cgi?id=68235
https://bugs.freedesktop.org/show_bug.cgi?id=69721
Alexandre Demers alexandre.f.demers@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Can't reach maximum memory |Can't reach maximum memory |speed (or core speed) when |speed (or core speed) when |using dpm=1 on r600g |using dpm=1 on r600g on | |cards not sticking to | |reference board
https://bugs.freedesktop.org/show_bug.cgi?id=69721
Alexandre Demers alexandre.f.demers@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |agd5f@yahoo.com
--- Comment #2 from Alexandre Demers alexandre.f.demers@gmail.com --- Hi Alex. A year ago, while we were struggling with dpm on Cayman, you implemented a fix to limit the maximum memory and core speeds to the reference ones in the clk/voltage dependency tables. Now that Cayman is working great, I'm wondering if you would have the time "to dig a bit more internally to try and figure out how to handle these clks properly" when a card is not using the reference values? Is there a way to read the maximum speed from the video card bios or at least to identify a card built to exceed the reference values?
I'm ready to test any patch you can throw at me.
Cheers! Alexandre
https://bugs.freedesktop.org/show_bug.cgi?id=69721
--- Comment #3 from Alex Deucher agd5f@yahoo.com --- Did you try again after fixing the vddci setup?
https://bugs.freedesktop.org/show_bug.cgi?id=69721
--- Comment #4 from Alexandre Demers alexandre.f.demers@gmail.com --- (In reply to comment #3)
Did you try again after fixing the vddci setup?
To my knowledge, the memory speed is still limited to 1250 instead of reaching its maximum speed of 1300; the same thing goes for the core clock. I'll need to have a look at the code, but the last time I had a look, we were still calling btc_get_max_clock_from_voltage_dependency_table(), which was limiting the speed to the reference values.
If I have time, I'll look at the code tonight and add some code to print values that would be limited by btc_get_max_clock_from_voltage_dependency_table().
Other than this limitation, I have mostly no problem with my Cayman GPU.
https://bugs.freedesktop.org/show_bug.cgi?id=69721
--- Comment #5 from Alex Deucher agd5f@yahoo.com --- (In reply to comment #4)
(In reply to comment #3)
Did you try again after fixing the vddci setup?
To my knowledge, the memory speed is still limited to 1250 instead of reaching its maximum speed of 1300; the same thing goes for the core clock. I'll need to have a look at the code, but the last time I had a look, we were still calling btc_get_max_clock_from_voltage_dependency_table(), which was limiting the speed to the reference values.
Right. I mean have you tried reverting that patch or just skipping the calls to btc_get_max_clock_from_voltage_dependency_table(). I think they should work fine now that vddci is fixed.
https://bugs.freedesktop.org/show_bug.cgi?id=69721
--- Comment #6 from Alexandre Demers alexandre.f.demers@gmail.com --- (In reply to comment #5)
(In reply to comment #4)
(In reply to comment #3)
Did you try again after fixing the vddci setup?
To my knowledge, the memory speed is still limited to 1250 instead of reaching its maximum speed of 1300; the same thing goes for the core clock. I'll need to have a look at the code, but the last time I had a look, we were still calling btc_get_max_clock_from_voltage_dependency_table(), which was limiting the speed to the reference values.
Right. I mean have you tried reverting that patch or just skipping the calls to btc_get_max_clock_from_voltage_dependency_table(). I think they should work fine now that vddci is fixed.
Well that was one of the plans. ;) I'll try it later and let you know.
https://bugs.freedesktop.org/show_bug.cgi?id=69721
--- Comment #7 from Alexandre Demers alexandre.f.demers@gmail.com --- It seems to run as expected now. I've submitted a patch (http://lists.freedesktop.org/archives/dri-devel/2014-September/068789.html). Maybe it could/should be tested on other GPUs.
https://bugs.freedesktop.org/show_bug.cgi?id=69721
Alexandre Demers alexandre.f.demers@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |FIXED
--- Comment #8 from Alexandre Demers alexandre.f.demers@gmail.com --- Closing since it should be fixed in kernel 3.18 (pull request from drm-next-3.18).
dri-devel@lists.freedesktop.org