Bug 214991

Summary: VC4 DRM waiting for flip down makes UI freeze a while with kernel 5.15
Product: Drivers Reporter: Jian-Hong Pan (jhp)
Component: Video(DRI - non Intel)Assignee: drivers_video-dri
Status: RESOLVED CODE_FIX    
Severity: normal CC: pbrobinson
Priority: P1    
Hardware: ARM   
OS: Linux   
Kernel Version: 5.15 Subsystem:
Regression: No Bisected commit-id:
Attachments: Full dmesg log
Full dmesg log with the patch series "drm/vc4: kms: Misc fixes for HVS commits"
Full dmesg log with the v2 patch series "drm/vc4: kms: Misc fixes for HVS commits"

Description Jian-Hong Pan 2021-11-12 03:47:52 UTC
Created attachment 299547 [details]
Full dmesg log

I tested Linux mainline kernel 5.15 (aarch64) with enabled VC4 on RPi 4B. I notice UI freezes a while (about 10 seconds) some times.

The kernel shows the error message during the time:

[drm:drm_crtc_commit_wait] *ERROR* flip_done timed out
[drm:drm_atomic_helper_wait_for_flip_done] *ERROR* [CRTC:68:crtc-3] flip_done timed out
[drm:drm_atomic_helper_wait_for_dependencies] *ERROR* [CRTC:68:crtc-3] commit wait timed out
[drm:drm_crtc_commit_wait] *ERROR* flip_done timed out
vc4-drm gpu: [drm] *ERROR* Timed out waiting for commit

It is easy to reproduce this issue by invoking GL related things, for example es2gears.

After detail test, I found it is related to these commits:

f3c420fe19f8 ("drm/vc4: kms: Convert to atomic helpers")
82faa3276012 ("drm/vc4: kms: Remove async modeset semaphore")

This issue cannot be reproduced after I revert the commits.
Comment 1 Jian-Hong Pan 2021-11-17 06:58:15 UTC
Created attachment 299603 [details]
Full dmesg log with the patch series "drm/vc4: kms: Misc fixes for HVS commits"

Thanks to Maxime's reply from https://lore.kernel.org/lkml/20211115113348.aylgkwrmaaomqrp4@gilmour/T/

So, I applied the patch series "drm/vc4: kms: Misc fixes for HVS commits" [1] based on latest mainline kernel at commit 8ab774587903 ("Merge tag 'trace-v5.16-5' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace"), which almost equals "tags/v5.16-rc1".

However, the system hangs and becomes dead at the kernel message:

[drm] Initialized vc4 0.0.0 20140616 for gpu on minor 0

If I revert the patch series to the original mainline kernel, system can boot up.

[1]: https://lore.kernel.org/dri-devel/20211115113105.103275-1-maxime@cerno.tech/
Comment 2 Jian-Hong Pan 2021-11-18 06:51:01 UTC
Created attachment 299625 [details]
Full dmesg log with the v2 patch series "drm/vc4: kms: Misc fixes for HVS commits"

Maxime sent v2 patch series at https://www.spinics.net/lists/dri-devel/msg323342.html

System can boot into desktop environment now.  However, the UI still become frozen  some times and shows the same error message:

[drm:drm_crtc_commit_wait] *ERROR* flip_done timed out
[drm:drm_atomic_helper_wait_for_flip_done] *ERROR* [CRTC:68:crtc-3] flip_done timed out
[drm:drm_atomic_helper_wait_for_dependencies] *ERROR* [CRTC:68:crtc-3] commit wait timed out
[drm:drm_crtc_commit_wait] *ERROR* flip_done timed out
vc4-drm gpu: [drm] *ERROR* Timed out waiting for commit
Comment 3 Jian-Hong Pan 2022-04-22 05:45:50 UTC
Have not seen this error messages with the new kernel 5.17.  So, close it.