Bug 84771

Summary: [PNV/BYT Bisected]igt/kms_force_connector causes system crashes
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: huax.lu, intel-gfx-bugs, przanoni
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Guo Jinxian 2014-10-08 05:43:37 UTC
==System Environment==
--------------------------
Regression: Yes.

Non-working platforms: PNV BYT

==kernel==
--------------------------
origin/drm-intel-nightly:eabc0c8db15f9ba4d727aee5e0612a68cafe1ab5(fails)
    drm-intel-nightly: 2014y-10m-03d-21h-34m-34s UTC integration manifest

==Bug detailed description==
-----------------------------
igt/kms_force_connector causes system crashes. and igt/kms_cursor_crc/cursor-size-change have DMESG_WARN, igt/gem_concurrent_blit/gpuX-rcs-early-read-forked test timeout on PNV.

(PNV)igt/kms_force_connector PASS->CRASH
(BYT)igt/kms_force_connector PASS->CRASH
(PNV)igt/kms_cursor_crc/cursor-size-change PASS->DMESG_WARN
<3>[ 3198.161595] [drm:display_pipe_crc_irq_handler] *ERROR* spurious interrupt 
(PNV)igt/gem_concurrent_blit/gpuX-rcs-early-read-forked PASS->TIMEOUT

==Reproduce steps==
---------------------------- 
1. ./kms_force_connector

==Bisect results form [PRTS][auto-bisect]==
----------------------------
commit 5782eca1e19e85a04ad402fa4094aa1b5f9c53ce
Author:     Tim Gore <tim.gore@intel.com>
AuthorDate: Wed Oct 1 13:25:20 2014 +0100
Commit:     Daniel Vetter <daniel.vetter@ffwll.ch>
CommitDate: Wed Oct 1 14:44:30 2014 +0200

    lib/igt_core.c: disable lowmemorykiller during tests
    
    Several IGT tests cycle through a lot of GEM memory and
    when running these tests on Android they tend to get
    killed by the lowmemorykiller. The lowmemorykiller really
    is not usefull in this context and is just preventing the
    test from doing its job. This commit adds a function to
    disable the lowmemorykiller by writing "9999" to its
    oom adj parameter, which means it will never "select"
    any process to kill. The normal linux oom killer is still
    there to protect the kernel.
    The low memory killer is disabled during the common
    init function and then re-enabled by the exit handler.
    To make this work for single tests the exit handler is now
    installed in the common init function also so that it is
    invoked for all tests.
    This is just a hack to get round the fact that the i915
    driver uses the concept of purgeable memory which is not
    understood by the lowmemorykiller. If this ever gets
    fixed then this patch can be removed.
    
    Signed-off-by: Tim Gore <tim.gore@intel.com>
    [danvet: A bit of polish (coding style, static and rename
    check_igt_exit to common_exit_handler, drop the is_disabled check
    since we only call this once now).]
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Comment 1 Paulo Zanoni 2014-10-09 17:11:51 UTC
Hi

Does this IGT test solve the bug: http://patchwork.freedesktop.org/patch/34906/ ? Can you please test it?

Thanks,
Paulo
Comment 2 Guo Jinxian 2014-10-13 02:38:30 UTC
(In reply to Paulo Zanoni from comment #1)
> Hi
> 
> Does this IGT test solve the bug:
> http://patchwork.freedesktop.org/patch/34906/ ? Can you please test it?
> 
> Thanks,
> Paulo

With this patch, igt/kms_force_connector passes on both PNV and BYT, igt/gem_concurrent_blit/gpuX-rcs-early-read-forked also passed on PNV, but dmesg warning on PNV still able to reproduce.



[root@x-pnv2 tests]# ./kms_cursor_crc --run-subtest cursor-size-change
IGT-Version: 1.8-g68c5af3 (i686) (Linux: 3.17.0_drm-intel-nightly_ea4bec_20141012+ i686)
Beginning cursor-size-change on pipe B, connector LVDS-1

cursor-size-change on pipe B, connector LVDS-1: PASSED

Subtest cursor-size-change: SUCCESS (1.159s)
[root@x-pnv2 tests]# dmesg -r|egrep "<[1-4]>"|grep drm
<3>[53145.512320] [drm:display_pipe_crc_irq_handler] *ERROR* spurious interrupt
[root@x-pnv2 tests]#
Comment 3 Thomas Wood 2014-10-15 10:14:50 UTC
The fix for the kms_force_connector issues has been merged into master. Any remaining issues with other tests can be tracked in a separate bug report.
Comment 4 Thomas Wood 2014-10-15 10:15:00 UTC
*** Bug 84900 has been marked as a duplicate of this bug. ***
Comment 5 Guo Jinxian 2014-10-16 07:11:25 UTC
The failure still able to reproduce on latest -nightly(2ea23cd593ba60ead60e2f796fae675aa4475b1a), I will retest it later.


root@x-byt06:/GFX/Test/Intel_gpu_tools/intel-gpu-tools/tests# ./kms_force_connector
IGT-Version: 1.8-g5c7d54e (x86_64) (Linux: 3.17.0_drm-intel-nightly_2ea23c_20141016+ x86_64)
kms_force_connector: igt_core.c:360: common_exit_handler: Assertion `sig != 0 || igt_exit_called' failed.
Aborted
Comment 6 Paulo Zanoni 2014-10-16 12:44:24 UTC
(In reply to Guo Jinxian from comment #5)
> The failure still able to reproduce on latest
> -nightly(2ea23cd593ba60ead60e2f796fae675aa4475b1a), I will retest it later.
> 
> 
> root@x-byt06:/GFX/Test/Intel_gpu_tools/intel-gpu-tools/tests#
> ./kms_force_connector
> IGT-Version: 1.8-g5c7d54e (x86_64) (Linux:
> 3.17.0_drm-intel-nightly_2ea23c_20141016+ x86_64)
> kms_force_connector: igt_core.c:360: common_exit_handler: Assertion `sig !=
> 0 || igt_exit_called' failed.
> Aborted

But did you update IGT before testing?
Comment 7 Guo Jinxian 2014-10-17 04:55:43 UTC
On latest -nightly(2ea23cd593ba60ead60e2f796fae675aa4475b1a) with latest igt(303fe742fcdd7da6f03f948a4e41b529ee39613a)

Cases below pass.

root@x-byt06:/GFX/Test/Intel_gpu_tools/intel-gpu-tools/tests# ./kms_force_connector
IGT-Version: 1.8-g303fe74 (x86_64) (Linux: 3.17.0_drm-intel-nightly_2ea23c_20141016+ x86_64)
root@x-byt06:/GFX/Test/Intel_gpu_tools/intel-gpu-tools/tests# echo $?
0
[root@x-pnv2 tests]# ./gem_concurrent_blit --run-subtest gpuX-rcs-early-read-forked
IGT-Version: 1.8-g303fe74 (i686) (Linux: 3.17.0_drm-intel-nightly_2ea23c_20141016+ i686)
using 2x128 buffers, each 1MiB
Subtest gpuX-rcs-early-read-forked: SUCCESS (4.558s)


The failure below was tracked by bug 82779

root@x-byt06:/GFX/Test/Intel_gpu_tools/intel-gpu-tools/tests# ./kms_cursor_crc --run-subtest cursor-size-change
IGT-Version: 1.8-g5c7d54e (x86_64) (Linux: 3.17.0_drm-intel-nightly_2ea23c_20141016+ x86_64)
Beginning cursor-size-change on pipe A, connector eDP-1
Test assertion failure function test_cursor_size, file kms_cursor_crc.c:426:
Failed assertion: igt_crc_equal(&crc[i], &ref_crc)
Subtest cursor-size-change: FAIL (2.116s)
root@x-byt06:/GFX/Test/Intel_gpu_tools/intel-gpu-tools/tests# dmesg -c|egrep "<[1-4]>"|grep drm

Verified.
Comment 8 Elizabeth 2017-10-06 14:35:05 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.