[PATCH 1/2] drm/radeon: Only enable and handle pageflip interrupts when needed
Dieter Nützel
Dieter at nuetzel-hh.de
Thu Jun 26 19:06:42 PDT 2014
Am 27.06.2014 03:03, schrieb Michel Dänzer:
> On 27.06.2014 09:53, Dieter Nützel wrote:
>> Am 26.06.2014 12:39, schrieb Christian König:
>>> Am 26.06.2014 11:29, schrieb Michel Dänzer:
>>>> From: Michel Dänzer <michel.daenzer at amd.com>
>>>>
>>>> Prevents radeon_crtc_handle_flip() from running before
>>>> radeon_flip_work_func(), resulting in a kernel panic due to the
>>>> BUG_ON()
>>>> in drm_vblank_put().
>>>>
>>>> Tested-by: Dieter Nützel <Dieter at nuetzel-hh.de>
>>>> Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
>>>
>>> Does patch #2 alone fixes the problem as well?
>>
>> With #2 alone I get this during boot up (before plymouth):
>
> [...]
>
>> [ 15.259867] [drm:radeon_crtc_handle_flip] *ERROR*
>> radeon_crtc->flip_status = 0 != RADEON_FLIP_SUBMITTED(2)
>
> That's the original patch I sent to you along with two others for
> testing. The patch I submitted in this series has these messages
> downgraded to debugging messages, as they just show the patch
> preventing
> bad stuff from happening as designed.
>
> The question is, can you reproduce the panic or the 'impossible msc'
> lines in the Xorg log with only patch #2?
Here we go (the 'new' #2 alone):
For the panic I need more time.
But the first 'impossible msc' line arise during X start:
[ 80.271] (II) RADEON(0): Modeline "1680x1050"x0.0 119.00 1680 1728
1760 1840 1050 1053 1059 1080 +hsync -vsync (64.7 kHz e)
[ 80.271] (II) RADEON(0): Modeline "1920x1080"x60.0 172.80 1920
2040 2248 2576 1080 1081 1084 1118 -hsync +vsync (67.1 kHz e)
[ 100.246] (WW) RADEON(0): radeon_dri2_flip_event_handler: Pageflip
completion event has impossible msc 5302 < target_msc 5303
Some arise with KWin cube effects.
[ 1059.124] (WW) RADEON(0): radeon_dri2_flip_event_handler: Pageflip
completion event has impossible msc 62948 < target_msc 62949
[ 1067.223] (WW) RADEON(0): radeon_dri2_flip_event_handler: Pageflip
completion event has impossible msc 63435 < target_msc 63436
[ 1081.458] (WW) RADEON(0): radeon_dri2_flip_event_handler: Pageflip
completion event has impossible msc 64290 < target_msc 64291
[ 1233.165] (WW) RADEON(0): radeon_dri2_flip_event_handler: Pageflip
completion event has impossible msc 73416 < target_msc 73417
[ 1233.515] (WW) RADEON(0): radeon_dri2_flip_event_handler: Pageflip
completion event has impossible msc 73437 < target_msc 73438
[ 1234.330] (WW) RADEON(0): radeon_dri2_flip_event_handler: Pageflip
completion event has impossible msc 73486 < target_msc 73487
[ 1235.079] (WW) RADEON(0): radeon_dri2_flip_event_handler: Pageflip
completion event has impossible msc 73531 < target_msc 73532
Sleep well!
-Dieter
>> But with Michel's #1+2 and 3 I got this in Xorg.0.log:
>> (See Xorg.0.log.old.xz)
>>
>> (EE) [mi] EQ overflowing. Additional events will be discarded until
>> existing events are processed.
>
> That may not be directly related to the page flipping issues.
More information about the dri-devel
mailing list