tilcdc: vblank wait timed out

Bartosz Golaszewski bgolaszewski at baylibre.com
Mon Dec 12 12:16:21 UTC 2016


2016-12-12 12:26 GMT+01:00 Jyri Sarha <jsarha at ti.com>:
> On 12/05/16 19:07, Bartosz Golaszewski wrote:
>> 2016-12-05 12:01 GMT+01:00 Bartosz Golaszewski <bgolaszewski at baylibre.com>:
>>> Hi Jyri,
>>>
>>> I pulled your recent tilcdc pull request on top of v4.9 and Sekhar's
>>> davinci branch (+ vga dac DT)[1].
>>>
>>> I'm getting "vblank wait timed out" errors when running simple modetest[2].
>>>
>>> This error happened before with the drm_bridge series[3], but went
>>> away at one of the subsequent patch versions.
>>>
>>> Could you please verify that you see the same error and advise on what
>>> could be the reason? I'm investigating on my own as well.
>>>
>>> Best regards,
>>> Bartosz Golaszewski
>>>
>>> [1] https://github.com/brgl/linux/tree/tilcdc/modetest_error
>>> [2] http://pastebin.com/rCM44Uds
>>> [3] http://www.spinics.net/lists/dri-devel/msg123732.html
>>
>
> Sorry, I almost forgot about this problem.
>
>> This seems like some END_OF_FRAME0 interrupt-related race condition.
>
> I can not see any race related to vblank event sending. The
> drm_modeset_lock_crtc() is there exactly for all ongoing operations to
> complete before shutting down the crtc.
>
> I think the problem is a missing END_OF_FRAME0 interrupt when sync lost
> interrupt flood happens.
>

Indeed sounds like a probable cause.

>> Increasing the timeout in drm_atomic_helper_wait_for_vblanks() from 50
>> to 100 and dropping drm_modeset_lock_crtc()/drm_modeset_unlock_crtc()
>
> Not taking the lock causes drm_crtc_vblank_off() to be called in
> tilcdc_crtc_disable(), before the time out happens. However, this is
> racy because there is a pending commit still on going and executing in
> parallel with the recovery work.
>

Sure, I just did it to see if it would change anything.

>> in tilcdc_crtc_recover_work() makes the warning disappear. Also:
>> calling drm_crtc_vblank_off() additionally before locking the crtc in
>> tilcdc_crtc_recover_work() also seems to fix the issue 90% of times. I
>
> I wonder what happens in that 10% off the times when when that does not
> help...
>
>> have been unable to figure out a reliable solution today though.
>>
>
> Does the attached patch help with the issue?
>

No it doesn't - I'm still getting the warning.

Thanks,
Bartosz


More information about the dri-devel mailing list