Bug 99894

Summary: [KBL/BXT/SKL][IGT] kms_busy@extended* causes an assertion failure test_atomic_commit_hang
Product: DRI Reporter: Luis Botello <luis.botello.ortega>
Component: DRM/IntelAssignee: Mika Kuoppala <mika.kuoppala>
Status: CLOSED DUPLICATE QA Contact: Intel GFX Bugs mailing list <intel-gfx-bugs>
Severity: normal    
Priority: medium CC: bugs, intel-gfx-bugs
Version: XOrg git   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: ALL i915 features: display/atomic
Attachments:
Description Flags
dmesg none

Description Luis Botello 2017-02-21 17:57:15 UTC
HW config
===============================
Processor Number				i7-7500U
Processor Graphics 				Intel® HD Graphics 620
Graphics Base Frequency				300.00 MHz
Graphics Max Dynamic Frequency			1.05 GHz
Graphics Video Max Memory			32 GB
Graphics Output					eDP/DP/HDMI/DVI

SW config
=================================
Kernel version : 4.10.0-rc8-e80b772
commit e80b772bf85da72c46b582e7c4f7b0d861cb4669
    drm-tip: 2017y-02m-14d-22h-44m-17s UTC integration manifest
Component         : drm
	tag       : libdrm-2.4.75-6-gec80fd3
	commit    : ec80fd3
 Component         : cairo
	tag       : 1.15.4-6-g5854dd9
	commit    : 5854dd9
Component         : intel-gpu-tools
	tag       : intel-gpu-tools-1.17-240-gca2ba47
	commit    : ca2ba47

Steps
====================================
./kms_busy --run-subtest extended-modeset-hang-newfb-blt-a

Program output
=====================================
(kms_busy:9666) CRITICAL: Test assertion failure function test_atomic_commit_hang, file kms_busy.c:227:
(kms_busy:9666) CRITICAL: Failed assertion: gem_bo_busy(dpy->drm_fd, busy_fb->gem_handle)
Subtest extended-pageflip-hang-newfb-vebox-C failed.
**** DEBUG ****
(kms_busy:8248) DEBUG: Test requirement passed: gem_has_ring(display.drm_fd, e->exec_id | e->flags)
(kms_busy:8248) igt-kms-DEBUG: display: HDMI-A-2: set_pipe(C)
(kms_busy:8248) igt-kms-DEBUG: display: HDMI-A-2: Selecting pipe C
(kms_busy:8248) igt-fb-DEBUG: igt_create_fb_with_bo_size(width=1920, height=1080, format=0x34325258, tiling=0x100000000000001, size=0)
(kms_busy:8248) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(kms_busy:8248) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(kms_busy:8248) igt-fb-DEBUG: igt_create_fb_with_bo_size(handle=1, pitch=7680)
(kms_busy:8248) igt-kms-DEBUG: display: C.0: plane_set_fb(58)
(kms_busy:8248) DEBUG: Test requirement passed: (output = set_fb_on_crtc(dpy, pipe, &fb[0]))
(kms_busy:8248) igt-kms-DEBUG: display: commit {
(kms_busy:8248) igt-kms-DEBUG: display:     HDMI-A-2: Selecting pipe C
(kms_busy:8248) igt-kms-DEBUG: display:     A: Setting NULL mode
(kms_busy:8248) igt-kms-DEBUG: display:     populating plane data: A.0, fb 0
(kms_busy:8248) igt-kms-DEBUG: display:     populating plane data: A.1, fb 0
(kms_busy:8248) igt-kms-DEBUG: display:     populating plane data: A.2, fb 0
(kms_busy:8248) igt-kms-DEBUG: display:     B: Setting NULL mode
(kms_busy:8248) igt-kms-DEBUG: display:     populating plane data: B.0, fb 0
(kms_busy:8248) igt-kms-DEBUG: display:     populating plane data: B.1, fb 0
(kms_busy:8248) igt-kms-DEBUG: display:     populating plane data: B.2, fb 0
(kms_busy:8248) igt-kms-DEBUG: display:     C: Setting mode 1920x1080 from HDMI-A-2
(kms_busy:8248) igt-kms-DEBUG: display:     populating plane data: C.0, fb 58
(kms_busy:8248) igt-kms-DEBUG: display:     src = (0, 0) 1920 x 1080 dst = (0, 0) 1920 x 1080
(kms_busy:8248) igt-kms-DEBUG: display:     populating plane data: C.1, fb 0
(kms_busy:8248) igt-kms-DEBUG: display:     populating plane data: C.2, fb 0
(kms_busy:8248) igt-kms-DEBUG: display:     DP-1: preparing atomic, pipe: None
(kms_busy:8248) igt-kms-DEBUG: display:     HDMI-A-1: preparing atomic, pipe: None
(kms_busy:8248) igt-kms-DEBUG: display:     HDMI-A-2: preparing atomic, pipe: C
(kms_busy:8248) igt-kms-DEBUG: display: }
(kms_busy:8248) igt-fb-DEBUG: igt_create_fb_with_bo_size(width=1920, height=1080, format=0x34325258, tiling=0x100000000000001, size=0)
(kms_busy:8248) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(kms_busy:8248) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(kms_busy:8248) igt-fb-DEBUG: igt_create_fb_with_bo_size(handle=2, pitch=7680)
(kms_busy:8248) igt-kms-DEBUG: display: C.0: plane_set_fb(57)
(kms_busy:8248) ioctl-wrappers-DEBUG: Test requirement passed: gem_has_ring(fd, ring)
(kms_busy:8248) igt-dummyload-DEBUG: Test requirement passed: nengine
(kms_busy:8248) igt-kms-DEBUG: display: commit {
(kms_busy:8248) igt-kms-DEBUG: display:     HDMI-A-2: Selecting pipe C
(kms_busy:8248) igt-kms-DEBUG: display:     populating plane data: A.0, fb 0
(kms_busy:8248) igt-kms-DEBUG: display:     populating plane data: A.1, fb 0
(kms_busy:8248) igt-kms-DEBUG: display:     populating plane data: A.2, fb 0
(kms_busy:8248) igt-kms-DEBUG: display:     populating plane data: B.0, fb 0
(kms_busy:8248) igt-kms-DEBUG: display:     populating plane data: B.1, fb 0
(kms_busy:8248) igt-kms-DEBUG: display:     populating plane data: B.2, fb 0
(kms_busy:8248) igt-kms-DEBUG: display:     populating plane data: C.0, fb 57
(kms_busy:8248) igt-kms-DEBUG: display:     src = (0, 0) 1920 x 1080 dst = (0, 0) 1920 x 1080
(kms_busy:8248) igt-kms-DEBUG: display:     populating plane data: C.1, fb 0
(kms_busy:8248) igt-kms-DEBUG: display:     populating plane data: C.2, fb 0
(kms_busy:8248) igt-kms-DEBUG: display:     DP-1: preparing atomic, pipe: None
(kms_busy:8248) igt-kms-DEBUG: display:     HDMI-A-1: preparing atomic, pipe: None
(kms_busy:8248) igt-kms-DEBUG: display:     HDMI-A-2: preparing atomic, pipe: C
(kms_busy:8248) igt-kms-DEBUG: display: }
****  END  ****
Comment 1 Luis Botello 2017-02-21 18:09:08 UTC
Subtests failed:

igt@kms_busy@extended-modeset-hang-newfb-blt-a
igt@kms_busy@extended-modeset-hang-newfb-bsd-a
igt@kms_busy@extended-modeset-hang-newfb-default-a
igt@kms_busy@extended-modeset-hang-newfb-render-a
igt@kms_busy@extended-modeset-hang-newfb-vebox-a
igt@kms_busy@extended-pageflip-hang-newfb-blt-a
igt@kms_busy@extended-pageflip-hang-newfb-blt-b
igt@kms_busy@extended-pageflip-hang-newfb-blt-c
igt@kms_busy@extended-pageflip-hang-newfb-bsd-a
igt@kms_busy@extended-pageflip-hang-newfb-bsd-c
igt@kms_busy@extended-pageflip-hang-newfb-default-a
igt@kms_busy@extended-pageflip-hang-newfb-default-c
igt@kms_busy@extended-pageflip-hang-newfb-render-a
igt@kms_busy@extended-pageflip-hang-newfb-render-c
igt@kms_busy@extended-pageflip-hang-newfb-vebox-a
igt@kms_busy@extended-pageflip-hang-newfb-vebox-b
igt@kms_busy@extended-pageflip-hang-newfb-vebox-c
Comment 2 Jairo Miramontes 2017-02-21 18:46:40 UTC
In BXT the below 70 tests failed for kms_busy@extended* family


igt@kms_busy@extended-modeset-hang-newfb-blt-a
igt@kms_busy@extended-modeset-hang-newfb-blt-b
igt@kms_busy@extended-modeset-hang-newfb-blt-c
igt@kms_busy@extended-modeset-hang-newfb-bsd-a
igt@kms_busy@extended-modeset-hang-newfb-bsd-b
igt@kms_busy@extended-modeset-hang-newfb-bsd-c
igt@kms_busy@extended-modeset-hang-newfb-default-a
igt@kms_busy@extended-modeset-hang-newfb-default-b
igt@kms_busy@extended-modeset-hang-newfb-default-c
igt@kms_busy@extended-modeset-hang-newfb-render-a
igt@kms_busy@extended-modeset-hang-newfb-render-b
igt@kms_busy@extended-modeset-hang-newfb-render-c
igt@kms_busy@extended-modeset-hang-newfb-vebox-a
igt@kms_busy@extended-modeset-hang-newfb-vebox-b
igt@kms_busy@extended-modeset-hang-newfb-vebox-c
igt@kms_busy@extended-modeset-hang-newfb-with-reset-blt-b
igt@kms_busy@extended-modeset-hang-newfb-with-reset-blt-c
igt@kms_busy@extended-modeset-hang-newfb-with-reset-bsd-b
igt@kms_busy@extended-modeset-hang-newfb-with-reset-bsd-c
igt@kms_busy@extended-modeset-hang-newfb-with-reset-default-b
igt@kms_busy@extended-modeset-hang-newfb-with-reset-default-c
igt@kms_busy@extended-modeset-hang-newfb-with-reset-render-b
igt@kms_busy@extended-modeset-hang-newfb-with-reset-render-c
igt@kms_busy@extended-modeset-hang-newfb-with-reset-vebox-b
igt@kms_busy@extended-modeset-hang-newfb-with-reset-vebox-c
igt@kms_busy@extended-modeset-hang-oldfb-blt-a
igt@kms_busy@extended-modeset-hang-oldfb-blt-b
igt@kms_busy@extended-modeset-hang-oldfb-blt-c
igt@kms_busy@extended-modeset-hang-oldfb-bsd-a
igt@kms_busy@extended-modeset-hang-oldfb-bsd-b
igt@kms_busy@extended-modeset-hang-oldfb-bsd-c
igt@kms_busy@extended-modeset-hang-oldfb-default-a
igt@kms_busy@extended-modeset-hang-oldfb-default-b
igt@kms_busy@extended-modeset-hang-oldfb-default-c
igt@kms_busy@extended-modeset-hang-oldfb-render-a
igt@kms_busy@extended-modeset-hang-oldfb-render-b
igt@kms_busy@extended-modeset-hang-oldfb-render-c
igt@kms_busy@extended-modeset-hang-oldfb-vebox-a
igt@kms_busy@extended-modeset-hang-oldfb-vebox-b
igt@kms_busy@extended-modeset-hang-oldfb-vebox-c
igt@kms_busy@extended-modeset-hang-oldfb-with-reset-blt-b
igt@kms_busy@extended-modeset-hang-oldfb-with-reset-blt-c
igt@kms_busy@extended-modeset-hang-oldfb-with-reset-bsd-b
igt@kms_busy@extended-modeset-hang-oldfb-with-reset-bsd-c
igt@kms_busy@extended-modeset-hang-oldfb-with-reset-default-b
igt@kms_busy@extended-modeset-hang-oldfb-with-reset-default-c
igt@kms_busy@extended-modeset-hang-oldfb-with-reset-render-b
igt@kms_busy@extended-modeset-hang-oldfb-with-reset-render-c
igt@kms_busy@extended-modeset-hang-oldfb-with-reset-vebox-b
igt@kms_busy@extended-modeset-hang-oldfb-with-reset-vebox-c
igt@kms_busy@extended-pageflip-hang-newfb-blt-a
igt@kms_busy@extended-pageflip-hang-newfb-blt-b
igt@kms_busy@extended-pageflip-hang-newfb-blt-c
igt@kms_busy@extended-pageflip-hang-newfb-bsd-a
igt@kms_busy@extended-pageflip-hang-newfb-bsd-b
igt@kms_busy@extended-pageflip-hang-newfb-bsd-c
igt@kms_busy@extended-pageflip-hang-newfb-default-a
igt@kms_busy@extended-pageflip-hang-newfb-default-b
igt@kms_busy@extended-pageflip-hang-newfb-default-c
igt@kms_busy@extended-pageflip-hang-newfb-render-a
igt@kms_busy@extended-pageflip-hang-newfb-render-b
igt@kms_busy@extended-pageflip-hang-newfb-render-c
igt@kms_busy@extended-pageflip-hang-newfb-vebox-a
igt@kms_busy@extended-pageflip-hang-newfb-vebox-b
igt@kms_busy@extended-pageflip-hang-newfb-vebox-c
igt@kms_busy@extended-pageflip-hang-oldfb-blt-b
igt@kms_busy@extended-pageflip-hang-oldfb-bsd-b
igt@kms_busy@extended-pageflip-hang-oldfb-bsd-c
igt@kms_busy@extended-pageflip-hang-oldfb-render-b
igt@kms_busy@extended-pageflip-hang-oldfb-vebox-b


Used the below configuration:


========== Kernel Information==========
commit e80b772bf85da72c46b582e7c4f7b0d861cb4669
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Tue Feb 14 23:45:02 2017 +0100

    drm-tip: 2017y-02m-14d-22h-44m-17s UTC integration manifest


Kernel version : 4.10.0-rc8-e80b772
Architecture : source amd64 all

========== Software Information ==========
Component: drm
Url      : http://cgit.freedesktop.org/mesa/drm
Tag      : libdrm-2.4.75-6-gec80fd3
Commit   : ec80fd3
Author   : Chris Wilson <chris@chris-wilson.co.uk>
Age      : 2 days ago

Component: cairo
Url      : http://cgit.freedesktop.org/cairo
Tag      : 1.15.4-6-g5854dd9
Commit   : 5854dd9
Author   : Adrian Johnson <ajohnson@redneon.com>
Age      : 12 days ago

Component: intel-gpu-tools
Url      : https://cgit.freedesktop.org/xorg/app/intel-gpu-tools
Tag      : intel-gpu-tools-1.17-240-gca2ba47
Commit   : ca2ba47
Author   : Chris Wilson <chris@chris-wilson.co.uk>
Age      : 15 hours ago

====================

Ubuntu 16.10 yakkety
Comment 3 Marta Löfstedt 2017-02-28 10:56:02 UTC
Created attachment 129981 [details]
dmesg
Comment 4 Marta Löfstedt 2017-02-28 10:58:31 UTC
I can reproduce a lot of the failing subtests on BDW NUC5i5
IGT-Version: 1.17-geb53664
drm-tip: 1a8bd0
Attached dmesg from failing manual run of ./tests/kms_busy --run-subtest extended-modeset-hang-newfb-blt-A
Comment 5 Marta Löfstedt 2017-02-28 12:53:25 UTC
Is there any information available if/when this test passed before?
Comment 6 Jairo Miramontes 2017-02-28 21:05:57 UTC
Just looked at previous results, looks like this is a fairly new Test, and has not passed before
Comment 7 Ricardo 2017-03-01 20:32:43 UTC
removing needinfo status
Comment 8 Maarten Lankhorst 2017-03-02 15:31:37 UTC
This is a bug in GPU reset, before trying a modeset the GPU should complete all modeset fences in some way before initiating the reset, else there's a deadlock because the GPU reset has to wait for all screen updates to complete, without guaranteeing they will complete.
Comment 9 Chris Wilson 2017-03-03 11:06:14 UTC

*** This bug has been marked as a duplicate of bug 99093 ***

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.