Bug 99472 - [SKL][KBL] Test assertion failure function two_screens_flip_vs_cursor for i915.nuclear_pageflip=1
Summary: [SKL][KBL] Test assertion failure function two_screens_flip_vs_cursor for i91...
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 09:24 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 09:24:06 UTC
[tag] [reply] [−] 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-long-nonblocking-modeset-vs-cursor-atomic failed.
- Subtest 2x-nonblocking-modeset-vs-cursor-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 [two_screens_flip_vs_cursor+0x6b1]
  #2 [<unknown>+0x6b1]
Subtest 2x-long-nonblocking-modeset-vs-cursor-atomic: FAIL (0.227s)
Err	
(kms_cursor_legacy:10103) CRITICAL: Test assertion failure function two_screens_flip_vs_cursor, file kms_cursor_legacy.c:989:
(kms_cursor_legacy:10103) CRITICAL: Failed assertion: get_vblank(display->drm_fd, pipe, 0) == vblank_start
(kms_cursor_legacy:10103) CRITICAL: error: 38464 != 38463
Subtest 2x-long-nonblocking-modeset-vs-cursor-atomic failed.
**** DEBUG ****
(kms_cursor_legacy:10103) DEBUG: Test requirement passed: cursor
(kms_cursor_legacy:10103) igt-kms-DEBUG: display: B.2: plane_set_fb(112)
(kms_cursor_legacy:10103) igt-kms-DEBUG: display: commit {
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     HDMI-A-1: Selecting pipe A
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     DP-2: Selecting pipe B
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     A: Setting mode 1920x1200 from HDMI-A-1
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     populating plane data: A.0, fb 59
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     src = (0, 0) 1920 x 1200 dst = (0, 0) 1920 x 1200
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     populating plane data: A.1, fb 0
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     populating plane data: A.2, fb 112
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     src = (0, 0) 64 x 64 dst = (0, 0) 64 x 64
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     B: Setting mode 1600x900 from DP-2
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     populating plane data: B.0, fb 110
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     src = (0, 0) 1600 x 900 dst = (0, 0) 1600 x 900
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     populating plane data: B.1, fb 0
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     populating plane data: B.2, fb 112
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     src = (0, 0) 64 x 64 dst = (0, 0) 64 x 64
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     C: Setting NULL mode
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     populating plane data: C.0, fb 0
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     populating plane data: C.1, fb 0
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     populating plane data: C.2, fb 0
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     DP-1: preparing atomic, pipe: None
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     HDMI-A-1: preparing atomic, pipe: A
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     DP-2: preparing atomic, pipe: B
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     HDMI-A-2: preparing atomic, pipe: None
(kms_cursor_legacy:10103) igt-kms-DEBUG: display: }
(kms_cursor_legacy:10103) igt-kms-DEBUG: display: commit {
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     HDMI-A-1: Selecting pipe A
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     DP-2: Selecting pipe B
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     A: Setting mode 1920x1200 from HDMI-A-1
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     populating plane data: A.0, fb 59
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     src = (0, 0) 1920 x 1200 dst = (0, 0) 1920 x 1200
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     populating plane data: A.1, fb 0
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     populating plane data: A.2, fb 112
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     src = (0, 0) 64 x 64 dst = (0, 0) 64 x 64
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     B: Setting mode 1600x900 from DP-2
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     populating plane data: B.0, fb 110
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     src = (0, 0) 1600 x 900 dst = (0, 0) 1600 x 900
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     populating plane data: B.1, fb 0
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     populating plane data: B.2, fb 112
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     src = (0, 0) 64 x 64 dst = (0, 0) 64 x 64
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     C: Setting NULL mode
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     populating plane data: C.0, fb 0
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     populating plane data: C.1, fb 0
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     populating plane data: C.2, fb 0
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     DP-1: preparing atomic, pipe: None
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     HDMI-A-1: preparing atomic, pipe: A
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     DP-2: preparing atomic, pipe: B
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     HDMI-A-2: preparing atomic, pipe: None
(kms_cursor_legacy:10103) igt-kms-DEBUG: display: }
(kms_cursor_legacy:10103) igt-kms-DEBUG: display: commit {
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     HDMI-A-1: Selecting pipe A
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     DP-2: Selecting pipe B
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     A: Setting mode 1920x1200 from HDMI-A-1
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     populating plane data: A.0, fb 59
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     populating plane data: A.1, fb 0
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     populating plane data: A.2, fb 112
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     B: Setting mode 1600x900 from DP-2
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     populating plane data: B.0, fb 110
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     populating plane data: B.1, fb 0
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     populating plane data: B.2, fb 112
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     C: Setting NULL mode
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     populating plane data: C.0, fb 0
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     populating plane data: C.1, fb 0
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     populating plane data: C.2, fb 0
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     DP-1: preparing atomic, pipe: None
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     HDMI-A-1: preparing atomic, pipe: A
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     DP-2: preparing atomic, pipe: B
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     HDMI-A-2: preparing atomic, pipe: None
(kms_cursor_legacy:10103) igt-kms-DEBUG: display: }
(kms_cursor_legacy:10103) igt-kms-DEBUG: display: DP-2: set_pipe(any)
(kms_cursor_legacy:10103) igt-kms-DEBUG: display: commit {
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     HDMI-A-1: Selecting pipe A
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     populating plane data: A.0, fb 59
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     populating plane data: A.1, fb 0
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     populating plane data: A.2, fb 112
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     B: Setting NULL mode
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     populating plane data: B.0, fb 110
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     populating plane data: B.1, fb 0
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     populating plane data: B.2, fb 112
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     populating plane data: C.0, fb 0
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     populating plane data: C.1, fb 0
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     populating plane data: C.2, fb 0
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     DP-1: preparing atomic, pipe: None
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     HDMI-A-1: preparing atomic, pipe: A
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     DP-2: preparing atomic, pipe: None
(kms_cursor_legacy:10103) igt-kms-DEBUG: display:     HDMI-A-2: preparing atomic, pipe: None
(kms_cursor_legacy:10103) igt-kms-DEBUG: display: }
(kms_cursor_legacy:10103) CRITICAL: Test assertion failure function two_screens_flip_vs_cursor, file kms_cursor_legacy.c:989:
(kms_cursor_legacy:10103) CRITICAL: Failed assertion: get_vblank(display->drm_fd, pipe, 0) == vblank_start
(kms_cursor_legacy:10103) CRITICAL: error: 38464 != 38463
****  END  ****
Environment	
PIGLIT_PLATFORM="mixed_glx_egl" PIGLIT_SOURCE_DIR="/opt/igt/piglit"
Command	
/opt/igt/tests/kms_cursor_legacy --run-subtest 2x-long-nonblocking-modeset-vs-cursor-atomic
Comment 1 Maarten Lankhorst 2017-01-24 16:16:01 UTC
What system can be used to reproduce this failure? I'm trying it on f2-kbl-7200u and it works there.
Comment 2 Rami 2017-02-01 17:33:58 UTC
Not reproduced with last setup :

Platform SKL Gigabyte
CPU: Intel(R) Core(TM) i5-6600 CPU @ 3.30GHz (family 6, model 94, stepping 3)
GPU: Intel® HD Graphics 530 - Intel Corporation Sky Lake Integrated Graphics
(rev 06)
Motherboard version: H170N-WIFI-CF
Memory: 2x 4GB Kingston 9905622-055.A00G

Software
=========
Bios: F3 Linux distribution: Ubuntu 16.04 64 bits

DMC 1.26 from https://01.org/sites/default/files/downloads/intelr-graphics-linux/skldmcver126.tar_1.bz2
GUC 6.1 from https://01.org/sites/default/files/downloads/intelr-graphics-linux/sklgucver61.tar.bz2

Software 
========
Bios: 144_B10 APLK_B0_IFWI_X64_R_2016_06_27_0956_SPI_RVP1.bin 
KSC: 1.15
Linux distribution: Ubuntu 16.04 64 bits
DMC 1.07
GuC 8.7
Kernel: drm-tip: 2017y-01m-30d-21h-14m-37s UTC integration manifest
commit 123d798c350471aba7e0625c154c6d9e395756c8
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:  Mon Jan 30 21:15:12 2017 +0000
drm:libdrm-2.4.75-3-gd4b8344 from git://anongit.freedesktop.org/mesa/drm
mesa: mesa-13.0.3-bec04114 from git://anongit.freedesktop.org/mesa/mesa
cairo:1.15.4-68bbb693 from git://anongit.freedesktop.org/cairo
xserver: xorg-server-1.19.0-66-ga6fcb15 from
git://git.freedesktop.org/git/xorg/xserver
xf86-video-intel: 2.99.917-750-g2d6f2e8 from
git://git.freedesktop.org/git/xorg/driver/xf86-video-intel
libva:  libva-1.7.3.pre1-48-ge677ad9 from
git://git.freedesktop.org/git/vaapi/libva
vaapi-intel-driver: 1.7.3-287-g05d2d25 from git://git.freedesktop.org/git/vaapi/intel-driver
Comment 3 Maarten Lankhorst 2017-02-02 07:21:21 UTC
Looking at the version from the log, it's most likely one of the 2 below fixed both bugs, will close them both.

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.