[mipsel+rs780e]Occasionally "GPU lockup" after resuming from suspend.

Michel Dänzer michel at daenzer.net
Thu Oct 20 09:31:35 PDT 2011


On Die, 2011-10-18 at 16:35 +0800, Chen Jie wrote:
> 
> 在 2011年10月17日 下午2:34, <chenhc at lemote.com>写道:
>         If I start X but switch to the console, then do suspend &
>         resume, "GPU
>         reset" hardly happen. but there is a new problem that the IRQ
>         of radeon
>         card is disabled. Maybe "GPU reset" has something to do with
>         "IRQ
>         disabled"?
>         
>         I have tried "irqpoll", it doesn't fix this problem.
>         
>         [  571.914062] irq 6: nobody cared (try booting with the
>         "irqpoll" option)
>         [  571.914062] Call Trace:
>         [  571.914062] [<ffffffff806f3248>] dump_stack+0x8/0x34
>         [  571.914062] [<ffffffff8027e1e4>] __report_bad_irq.clone.6
>         +0x44/0x15c
>         [  571.914062] [<ffffffff8027e584>] note_interrupt+0x204/0x2a0
>         [  571.914062] [<ffffffff8027c7cc>] handle_irq_event_percpu
>         +0x19c/0x1f8
>         [  571.914062] [<ffffffff8027c890>] handle_irq_event+0x68/0xa8
>         [  571.914062] [<ffffffff8027f038>] handle_level_irq
>         +0xd8/0x13c
>         [  571.914062] [<ffffffff8027bec8>] generic_handle_irq
>         +0x48/0x58
>         [  571.914062] [<ffffffff80204574>] do_IRQ+0x18/0x24
>         [  571.914062] [<ffffffff8020152c>] mach_irq_dispatch
>         +0xf0/0x194
>         [  571.914062] [<ffffffff80202a40>] ret_from_irq+0x0/0x4
>         [  571.914062]
>         [  571.914062] handlers:
>         [  571.914062] [<ffffffff8053bba8>]
>         radeon_driver_irq_handler_kms
>         
>         P.S.: use the latest kernel from git, and irq6 is not shared
>         by other
>         devices.
>         
> Does fence_wait depends on GPU's interrupt? If yes, then can I say
> "GPU lockup" is caused by unexpected disabling of GPU's irq?

No, if the GPU didn't actually lock up, the fences should still signal
eventually, as radeon_fence_signaled()->radeon_fence_poll_locked() is
called after the wait for the SW interrupt times out. 


-- 
Earthling Michel Dänzer           |                   http://www.amd.com
Libre software enthusiast         |          Debian, X and DRI developer


More information about the dri-devel mailing list