Bug 99471 - [SKL][KBL] Test assertion failure function igt_display_commit_atomic/two_screens_cursor_vs_flip for i915.nuclear_pageflip=1
Summary: [SKL][KBL] Test assertion failure function igt_display_commit_atomic/two_scre...
Status: CLOSED FIXED
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Intel (show other bugs)
Version: DRI git
Hardware: x86-64 (AMD64) Linux (All)
: high critical
Assignee: Intel GFX Bugs mailing list
QA Contact: Intel GFX Bugs mailing list
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-01-20 08:55 UTC by Jari Tahvanainen
Modified: 2017-02-02 07:21 UTC (History)
1 user (show)

See Also:
i915 platform: KBL, SKL
i915 features: display/atomic


Attachments

Description Jari Tahvanainen 2017-01-20 08:55:56 UTC
With nuclear page flip enabled (i915.nuclear_pageflip=1) and two screens attached on SKL one has failure on kms_cursor_legacy subcases:
- Subtest 2x-cursor-vs-nonblocking-modeset-atomic failed.
- Subtest 2x-long-cursor-vs-nonblocking-modeset-atomic failed.

Both are having the following kind of output:
Out	
IGT-Version: 1.17-ga36e627 (x86_64) (Linux: 4.10.0-rc3-CI-CI_DRM_182+ x86_64)
Stack trace:
  #0 [__igt_fail_assert+0x101]
  #1 [igt_display_commit_atomic+0x44]
  #2 [two_screens_cursor_vs_flip+0x690]
  #3 [__real_main1365+0x98b]
  #4 [main+0x33]
  #5 [__libc_start_main+0xf0]
  #6 [_start+0x29]
  #7 [<unknown>+0x29]
child 0 failed with exit status 99
Subtest 2x-cursor-vs-nonblocking-modeset-atomic: FAIL (1.495s)
Err	
(kms_cursor_legacy:10019) igt-kms-CRITICAL: Test assertion failure function igt_display_commit_atomic, file igt_kms.c:2495:
(kms_cursor_legacy:10019) igt-kms-CRITICAL: Failed assertion: ret == 0
(kms_cursor_legacy:10019) igt-kms-CRITICAL: Last errno: 16, Device or resource busy
(kms_cursor_legacy:10019) igt-kms-CRITICAL: error: -16 != 0
Subtest 2x-cursor-vs-nonblocking-modeset-atomic failed.
**** DEBUG ****
src = (0, 0) 1920 x 1200 dst = (0, 0) 1920 x 1200
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     populating plane data: A.1, fb 0
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     populating plane data: A.2, fb 112
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     populating plane data: B.0, fb 110
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     populating plane data: B.1, fb 0
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     populating plane data: B.2, fb 112
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     populating plane data: C.0, fb 0
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     populating plane data: C.1, fb 0
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     populating plane data: C.2, fb 0
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     DP-1: preparing atomic, pipe: None
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     HDMI-A-1: preparing atomic, pipe: A
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     DP-2: preparing atomic, pipe: B
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     HDMI-A-2: preparing atomic, pipe: None
(kms_cursor_legacy:10018) igt-kms-DEBUG: display: }
(kms_cursor_legacy:10018) igt-kms-DEBUG: display: A.0: plane_set_fb(107)
(kms_cursor_legacy:10018) igt-kms-DEBUG: display: commit {
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     HDMI-A-1: Selecting pipe A
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     DP-2: Selecting pipe B
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     populating plane data: A.0, fb 107
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     src = (0, 0) 1920 x 1200 dst = (0, 0) 1920 x 1200
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     populating plane data: A.1, fb 0
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     populating plane data: A.2, fb 112
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     populating plane data: B.0, fb 110
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     populating plane data: B.1, fb 0
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     populating plane data: B.2, fb 112
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     populating plane data: C.0, fb 0
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     populating plane data: C.1, fb 0
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     populating plane data: C.2, fb 0
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     DP-1: preparing atomic, pipe: None
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     HDMI-A-1: preparing atomic, pipe: A
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     DP-2: preparing atomic, pipe: B
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     HDMI-A-2: preparing atomic, pipe: None
(kms_cursor_legacy:10018) igt-kms-DEBUG: display: }
(kms_cursor_legacy:10018) igt-kms-DEBUG: display: A.0: plane_set_fb(107)
(kms_cursor_legacy:10018) igt-kms-DEBUG: display: commit {
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     HDMI-A-1: Selecting pipe A
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     DP-2: Selecting pipe B
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     populating plane data: A.0, fb 107
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     src = (0, 0) 1920 x 1200 dst = (0, 0) 1920 x 1200
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     populating plane data: A.1, fb 0
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     populating plane data: A.2, fb 112
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     populating plane data: B.0, fb 110
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     populating plane data: B.1, fb 0
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     populating plane data: B.2, fb 112
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     populating plane data: C.0, fb 0
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     populating plane data: C.1, fb 0
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     populating plane data: C.2, fb 0
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     DP-1: preparing atomic, pipe: None
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     HDMI-A-1: preparing atomic, pipe: A
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     DP-2: preparing atomic, pipe: B
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     HDMI-A-2: preparing atomic, pipe: None
(kms_cursor_legacy:10018) igt-kms-DEBUG: display: }
(kms_cursor_legacy:10018) igt-kms-DEBUG: display: A.0: plane_set_fb(107)
(kms_cursor_legacy:10018) igt-kms-DEBUG: display: commit {
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     HDMI-A-1: Selecting pipe A
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     DP-2: Selecting pipe B
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     populating plane data: A.0, fb 107
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     src = (0, 0) 1920 x 1200 dst = (0, 0) 1920 x 1200
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     populating plane data: A.1, fb 0
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     populating plane data: A.2, fb 112
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     populating plane data: B.0, fb 110
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     populating plane data: B.1, fb 0
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     populating plane data: B.2, fb 112
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     populating plane data: C.0, fb 0
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     populating plane data: C.1, fb 0
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     populating plane data: C.2, fb 0
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     DP-1: preparing atomic, pipe: None
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     HDMI-A-1: preparing atomic, pipe: A
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     DP-2: preparing atomic, pipe: B
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     HDMI-A-2: preparing atomic, pipe: None
(kms_cursor_legacy:10018) igt-kms-DEBUG: display: }
(kms_cursor_legacy:10018) igt-kms-DEBUG: display: A.0: plane_set_fb(107)
(kms_cursor_legacy:10018) igt-kms-DEBUG: display: commit {
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     HDMI-A-1: Selecting pipe A
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     DP-2: Selecting pipe B
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     populating plane data: A.0, fb 107
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     src = (0, 0) 1920 x 1200 dst = (0, 0) 1920 x 1200
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     populating plane data: A.1, fb 0
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     populating plane data: A.2, fb 112
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     populating plane data: B.0, fb 110
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     populating plane data: B.1, fb 0
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     populating plane data: B.2, fb 112
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     populating plane data: C.0, fb 0
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     populating plane data: C.1, fb 0
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     populating plane data: C.2, fb 0
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     DP-1: preparing atomic, pipe: None
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     HDMI-A-1: preparing atomic, pipe: A
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     DP-2: preparing atomic, pipe: B
(kms_cursor_legacy:10018) igt-kms-DEBUG: display:     HDMI-A-2: preparing atomic, pipe: None
(kms_cursor_legacy:10018) igt-kms-DEBUG: display: }
****  END  ****
Environment	
PIGLIT_PLATFORM="mixed_glx_egl" PIGLIT_SOURCE_DIR="/opt/igt/piglit"
Command	
/opt/igt/tests/kms_cursor_legacy --run-subtest 2x-cursor-vs-nonblocking-modeset-atomic
Comment 1 Maarten Lankhorst 2017-02-02 07:21:46 UTC
Same story as 99472:

commit 5b8a1ba36e9a99fd2674e9bfa1bb7f6f039c2c7c
Author: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Date:   Wed Jan 18 10:41:37 2017 +0100

    kms_cursor_legacy: Use cursor movement instead of hiding for 2x tests
    
    This forces the cursor fastpath to be used. While at it, add -atomic
    versions of the test to compare legacy pageflip vs atomic.
    
    The nonblocking modeset test is changed slightly, due to cdclk changes
    the page flip may be stalled so it's not useful to test it. Just test
    that a queued page flip + nonblocking modeset works as intended and
    there is no kernel spew.
    
    Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>

commit 396601872ae2e8a8ee9c98569b04ea2078f0adb5
Author: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Date:   Tue Jan 17 17:07:52 2017 +0100

    kms_cursor_legacy: Make the 2x tests slightly more useful.
    
    Trying to run as many cursor updates during a nonblocking modeset won't
    work, because both crtc's might be involved in the modeset. Instead
    try to run as many cursor updates on both crtc's at the same time,
    while trying to queue page flips in between.
    
    Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>


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.