[Bug 104975] Delay in skl_disable_plane() causes a system freeze

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Wed Feb 7 12:49:29 UTC 2018


https://bugs.freedesktop.org/show_bug.cgi?id=104975

Maarten Lankhorst <bugs at mblankhorst.nl> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |NEEDINFO

--- Comment #3 from Maarten Lankhorst <bugs at mblankhorst.nl> ---
Hey,

I fear this is working as intended. With this information I can't narrow down
what is your real problem. :(

The relevant error here is:

[  403.443634] [drm:drm_atomic_nonblocking_commit] committing 000000007afed85b
nonblocking
[  403.544735] [drm:intel_cpu_fifo_underrun_irq_handler] *ERROR* CPU pipe A
FIFO underrun
[  403.544750] [drm:intel_pipe_update_end] *ERROR* Atomic update failure on
pipe A (start=24896 end=24902) time 100023 us, min 1073, max 1079, scanline
start 450, end 457
[  403.544762] [drm:intel_fbc_underrun_work_fn] Disabling FBC due to FIFO
underrun.

as can be seen in the dmesg, you get a lot of those ERRORs like below:
[  403.544750] [drm:intel_pipe_update_end] *ERROR* Atomic update failure on
pipe A (start=24896 end=24902) time 100023 us, min 1073, max 1079, scanline
start 450, end 457

All of the code between pipe_update_start and pipe_update_end needs to run
without encountering a single vblank interrupt. As you can see in the dmesg,
hitting a vblank interrupt
results in this ERROR, and might cause FIFO underruns and even system hangs
because all the registers need to be updated in a single vblank interval.

Because of this pipe_update_start disables all local irqs and schedules the
update to be run at least 100 us away from the vblank interrupt, and
pipe_update_end complains loudly if we took longer than 100 us.

There's some code below in a ifdef CONFIG_DRM_I915_DEBUG_VBLANK_EVADE, you can
use it to report when a delay happened, without necessarily hitting any hang,
FIFO underrun or display corruption.

This might help you narrow down why vblank evasion sometimes takes longer than
100 us, or increase VBLANK_EVASION_TIME_US if necessary..

Good luck!

-- 
You are receiving this mail because:
You are on the CC list for the bug.
You are the QA Contact for the bug.
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/intel-gfx-bugs/attachments/20180207/9026da18/attachment.html>


More information about the intel-gfx-bugs mailing list