Bug 37112 - GPU lockup when trying to use profile based frequency switching
Summary: GPU lockup when trying to use profile based frequency switching
Status: NEW
Alias: None
Product: Drivers
Classification: Unclassified
Component: Video(DRI - non Intel) (show other bugs)
Hardware: All Linux
: P1 high
Assignee: drivers_video-dri
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-06-10 06:11 UTC by Hrvoje Senjan
Modified: 2016-02-16 21:56 UTC (History)
5 users (show)

See Also:
Kernel Version: 3.9-rc2
Subsystem:
Regression: No
Bisected commit-id:


Attachments
kern.log (106.88 KB, text/x-log)
2011-06-10 06:32 UTC, Hrvoje Senjan
Details
Xorg.0.log (36.76 KB, text/x-log)
2011-06-10 06:46 UTC, Hrvoje Senjan
Details
dmidecode (15.88 KB, application/octet-stream)
2011-06-10 06:47 UTC, Hrvoje Senjan
Details
messages (131.45 KB, application/octet-stream)
2011-06-10 12:51 UTC, Hrvoje Senjan
Details

Description Hrvoje Senjan 2011-06-10 06:11:22 UTC
On every kernel from 2.6.35 , up to .39 , changing from default profile : 
/sys/class/drm/card0/device/power_profile - to low/mid/high i get GPU lockups, i am able to switch to tty and kill gdm/kdm , and turn it on but its unusable.
Please tell what aditional information you need.
Comment 1 Hrvoje Senjan 2011-06-10 06:32:38 UTC
Created attachment 61412 [details]
kern.log
Comment 2 Hrvoje Senjan 2011-06-10 06:46:11 UTC
Created attachment 61422 [details]
Xorg.0.log
Comment 3 Hrvoje Senjan 2011-06-10 06:47:56 UTC
Created attachment 61432 [details]
dmidecode
Comment 4 Hrvoje Senjan 2011-06-10 12:51:32 UTC
Created attachment 61492 [details]
messages

messages log from Fedora 15/2.6.38.7
Comment 5 Hrvoje Senjan 2011-06-11 06:45:28 UTC
My first guess is , that kernel changes memory clock too low - with fglrx lowest memory clock is at 400MHz , but with radeon module/low frequency it changes it to 300MHz.
Comment 6 Rafał Miłecki 2011-06-11 07:36:36 UTC
(In reply to comment #5)
> My first guess is , that kernel changes memory clock too low - with fglrx
> lowest memory clock is at 400MHz , but with radeon module/low frequency it
> changes it to 300MHz.

Please, edit drivers/gpu/drm/radeon/radeon_pm.c, find:
> if (rdev->asic->set_memory_clock && (mclk != rdev->pm.current_mclk)) {
and make it
> if (0) {

Does it help?
Comment 7 Hrvoje Senjan 2011-06-11 15:29:50 UTC
Yes it helps! :)
Using default profile:
default engine clock: 600000 kHz
current engine clock: 594000 kHz
default memory clock: 500000 kHz
current memory clock: 495000 kHz
voltage: 1100 mV
PCIE lanes: 16

using low:
default engine clock: 600000 kHz
current engine clock: 109680 kHz
default memory clock: 500000 kHz
current memory clock: 495000 kHz
voltage: 900 mV
PCIE lanes: 16
Comment 8 Hrvoje Senjan 2011-06-11 15:38:06 UTC
I forgot to say 2 things: a)i tried your suggestion with 3.0.0-rc2 ,b) NO lockups :)
Comment 9 Hrvoje Senjan 2012-06-05 06:33:47 UTC
(In reply to comment #6)
> (In reply to comment #5)
> > My first guess is , that kernel changes memory clock too low - with fglrx
> > lowest memory clock is at 400MHz , but with radeon module/low frequency it
> > changes it to 300MHz.
> 
> Please, edit drivers/gpu/drm/radeon/radeon_pm.c, find:
> > if (rdev->asic->set_memory_clock && (mclk != rdev->pm.current_mclk)) {
> and make it
> > if (0) {
> 
> Does it help?

@Rafał
Any progress on this bug?
It's a reall pain to recompile kerenels without powersaving :(
Comment 10 Hrvoje Senjan 2012-08-27 23:19:31 UTC
Just tried 3.6 rc2.
No lockups/hangs! There can be a screen flickering (mostly visible while scrolling), but now dynpm works correctly:
cat /sys/kernel/debug/dri/0/radeon_pm_info
default engine clock: 600000 kHz
current engine clock: 297000 kHz
default memory clock: 500000 kHz
current memory clock: 396000 kHz
voltage: 900 mV
PCIE lanes: 16
Comment 11 Hrvoje Senjan 2012-08-28 02:22:19 UTC
Still locks up with low profile.
Comment 12 Hrvoje Senjan 2013-03-15 12:33:54 UTC
Would really appreciate for some further info, the situation is the same with low and mid methods, it tries to change the memory clock too low.
Thanks
Comment 13 Alex Deucher 2013-12-23 14:40:20 UTC
You should try the new dpm support in kernel 3.11 or newer.  Boot with radeon.dpm=1 on the kernel command line in grub.  I don't plan to put any more work into the old pm code.

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