Bug 84161

Summary: [ILK Bisected]igt/kms_flip subcases causes "[drm:ilk_display_irq_handler] *ERROR* Pipe A FIFO underrun "
Product: DRI Reporter: Guo Jinxian <jinxianx.guo>
Component: DRM/IntelAssignee: Intel GFX Bugs mailing list <intel-gfx-bugs>
Status: CLOSED FIXED QA Contact: Intel GFX Bugs mailing list <intel-gfx-bugs>
Severity: normal    
Priority: high CC: intel-gfx-bugs, shuang.he
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Guo Jinxian 2014-09-22 06:03:13 UTC
==System Environment==
--------------------------
Regression: Yes.

Non-working platforms: ILK

==kernel==
--------------------------
origin/drm-intel-nightly:c5660b4ad395f1e34eacc22cf81c687edfc9c83c(fails)
    drm-intel-nightly: 2014y-09m-19d-18h-12m-22s UTC integration manifest

==Bug detailed description==
-----------------------------
igt/kms_flip subcases causes "[drm:ilk_display_irq_handler] *ERROR* Pipe A FIFO underrun "

Case list:
igt/kms_flip/2x-flip-vs-expired-vblank
igt/kms_flip/2x-flip-vs-expired-vblank-interruptible

==Reproduce steps==
---------------------------- 
1. ./kms_flip --run-subtest 2x-flip-vs-expired-vblank

==Bisect results form [PRTS][auto-bisect]==
----------------------------
commit cf1a5cccaae1ac843b6042178662820f1fb58dea
Author:     Mario Kleiner <mario.kleiner.de@gmail.com>
AuthorDate: Sat Sep 13 18:25:54 2014 +0200
Commit:     Daniel Vetter <daniel.vetter@ffwll.ch>
CommitDate: Mon Sep 15 15:47:19 2014 +0200

    drm: Don't update vblank timestamp when the counter didn't change
    
    If we already have a timestamp for the current vblank counter, don't
    update it with a new timestmap. Small errors can creep in between two
    timestamp queries for the same vblank count, which could be confusing to
    userspace when it queries the timestamp for the same vblank sequence
    number twice.
    
    This problem gets exposed when the vblank disable timer is not used
    (or is set to expire quickly) and thus we can get multiple vblank
    disable<->enable transition during the same frame which would all
    attempt to update the timestamp with the latest estimate.
    
    Testcase: igt/kms_flip/flip-vs-expired-vblank
    Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Reviewed-by: Mario Kleiner <mario.kleiner.de@gmail.com>
    
    v2:Mario: Trivial rebase on top of current drm-next (13-Sep-2014)
    Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Comment 1 Rodrigo Vivi 2014-09-23 00:28:24 UTC
Could you please attach a full dmesg on this one?
Comment 2 Jani Nikula 2014-09-24 07:10:29 UTC
Mario and Daniel do not regard the bisect result as valid:

http://mid.gmane.org/20140923135127.GF15734@phenom.ffwll.local
http://mid.gmane.org/5421806A.4050604@gmail.com
Comment 3 Guo Jinxian 2014-09-29 08:23:42 UTC
The failure unable to reproduce on latest -nightly(7101d84020f63f1da7e0c5d021cdd6be4d515de5)

[root@x-pk5 tests]# ./kms_flip --run-subtest 2x-flip-vs-expired-vblank
IGT-Version: 1.8-g32a0308 (x86_64) (Linux: 3.17.0-rc6_drm-intel-nightly_7101d8_20140929+ x86_64)
Using monotonic timestamps
Test requirement not met in function run_pair, file kms_flip.c:1461:
Test requirement: modes
Subtest 2x-flip-vs-expired-vblank: SKIP (0.085s)
[root@x-pk5 tests]# dmesg -r|egrep "<[1-4]>"|grep drm
[root@x-pk5 tests]#
Comment 4 Elizabeth 2017-10-06 14:35:29 UTC
Closing old verified.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.