Bug 79050

Summary: [PNV/BYT/BDW Regression]igt/kms_flip some subcase fail
Product: DRI Reporter: Guo Jinxian <jinxianx.guo>
Component: DRM/IntelAssignee: Ville Syrjala <ville.syrjala>
Status: CLOSED FIXED QA Contact: Intel GFX Bugs mailing list <intel-gfx-bugs>
Severity: normal    
Priority: highest CC: intel-gfx-bugs, przanoni, yi.sun
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
dmesg none

Description Guo Jinxian 2014-05-22 05:11:20 UTC
Created attachment 99553 [details]
dmesg

==System Environment==
--------------------------
Regression: Yes. 
But I can't find good commit on both reset igt and kernel

Non-working platforms: PNV

==kernel==
--------------------------
-nightly: 36765340cb068dec1216342bfcdbf2678ec29860(fails)
-queued: bc76e320f21f8bd790a72bd5dc06909617432352(fails)
    Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Tue May 20 22:46:50 2014 +0200

    drm/i915: Drop now misleading DDI comment from dp_link_down

    Since

    commit 2e82a7203182d0883d0f9450d40ad6e1c6578ad9
    Author: Imre Deak <imre.deak@intel.com>
    Date:   Fri Jan 17 15:46:43 2014 +0200

        drm/i915: don't disable DP port after a failed link training

    and

    commit 5d6a1116c6475404e6505b708320f9579ae19acd
    Author: Imre Deak <imre.deak@intel.com>
    Date:   Thu Jan 16 18:35:57 2014 +0200

        drm/i915: don't disable the DP port if the link is lost

    we no longer call intel_dp_link_down from generic DP code, but only
    from the !HAS_DDI dp encoder functions. hsw/bdw have their own encoder
    disabling callback in intel_ddi.c.

    Hence the early return is no longer needed and the big comment just
    confusing, so let's rip it out. To ensure what we don't accidentally
    use this again on ddi encoders add a WARN_ON instead.

    Spotted while reading through intel_dp.c

    Cc: Imre Deak <imre.deak@intel.com>
    Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    
-fixes: 4ba4801d73d14690ed15774424e8b1d4c18323a5(fails)
    Author: Dave Airlie <airlied@redhat.com>
Date:   Tue May 20 09:56:26 2014 +1000

    Merge tag 'drm-intel-fixes-2014-05-16' of git://anongit.freedesktop.org/drm-intel into drm-fixes

    Intel fixes for regressions, black screens and hangs, for 3.15.

    * tag 'drm-intel-fixes-2014-05-16' of git://anongit.freedesktop.org/drm-intel:
      drm/i915: Increase WM memory latency values on SNB
      drm/i915: restore backlight precision when converting from ACPI
      drm/i915: Use the first mode if there is no preferred mode in the EDID
      drm/i915/dp: force eDP lane count to max available lanes on BDW
      drm/i915/vlv: reset VLV media force wake request register
      drm/i915/SDVO: For sysfs link put directory and target in correct order
      drm/i915: use lane count and link rate from VBT as minimums for eDP
      drm/i915: clean up VBT eDP link param decoding
      drm/i915: consider the source max DP lane count too

==Bug detailed description==
-----------------------------
igt/kms_flip some subcases below fail

igt/kms_flip/dpms-vs-vblank-race
igt/kms_flip/dpms-vs-vblank-race-interruptible
igt/kms_flip/modeset-vs-vblank-race
igt/kms_flip/modeset-vs-vblank-race-interruptible

Output:
./kms_flip --run-subtest modeset-vs-vblank-race-interruptible
IGT-Version: 1.6-gc75dcbd (i686) (Linux: 3.15.0-rc5_drm-intel-nightly_367653_20140521+ i686)
Using monotonic timestamps
Beginning modeset-vs-vblank-race-interruptible on crtc 7, connector 8
  1024x600 60 1024 1072 1104 1200 600 603 609 625 0xa 0x48 45000
Test assertion failure function run_test_step, file kms_flip.c:886:
Last errno: 4, Interrupted system call
Failed assertion: end - start > 1 * frame_time(o) / 2 && end - start < 3 * frame_time(o) / 2
Subtest modeset-vs-vblank-race-interruptible: FAIL


./kms_flip --run-subtest dpms-vs-vblank-race-interruptible
IGT-Version: 1.6-g831eb21 (i686) (Linux: 3.15.0-rc5_drm-intel-fixes_f93e94_20140522+ i686)
Using monotonic timestamps
Beginning dpms-vs-vblank-race-interruptible on crtc 7, connector 8
  1024x600 60 1024 1072 1104 1200 600 603 609 625 0xa 0x48 45000
Test assertion failure function run_test_step, file kms_flip.c:865:
Last errno: 22, Invalid argument
Failed assertion: __wait_for_vblank(TEST_VBLANK_BLOCK, o->pipe, 1, 0, &reply) == 0
Subtest dpms-vs-vblank-race-interruptible: FAIL


==Reproduce steps==
---------------------------- 
1. ./kms_flip --run-subtest modeset-vs-vblank-race-interruptible
Comment 1 Guo Jinxian 2014-05-23 06:26:42 UTC
This issue still able to reproduce on BDW.
output:
./kms_flip --run-subtest absolute-wf_vblank-interruptible
IGT-Version: 1.6-gc75dcbd (x86_64) (Linux: 3.15.0-rc6_drm-intel-nightly_de544d_20140523+ x86_64)
Using monotonic timestamps
Beginning absolute-wf_vblank-interruptible on crtc 5, connector 14
  1920x1080 60 1920 1966 1996 2080 1080 1082 1086 1112 0xa 0x48 138780
.............................................................
absolute-wf_vblank-interruptible on crtc 5, connector 14: PASSED

Beginning absolute-wf_vblank-interruptible on crtc 8, connector 14
  1920x1080 60 1920 1966 1996 2080 1080 1082 1086 1112 0xa 0x48 138780
Test assertion failure function wait_for_events, file kms_flip.c:1164:
Last errno: 4, Interrupted system call
Failed assertion: ret > 0
select timed out or error (ret 0)
Subtest absolute-wf_vblank-interruptible: FAIL
Comment 2 Guo Jinxian 2014-07-02 06:08:32 UTC
This bug still able to reproduce on latest -nightly(a7665faa31dbbbae25e376508a9b3781e25d09e2)

Output:
[root@x-pnv2 tests]# ./kms_flip --run-subtest modeset-vs-vblank-race-interruptible
IGT-Version: 1.7-g67e29a3 (i686) (Linux: 3.16.0-rc2_drm-intel-nightly_a7665f_20140701+ i686)
Using monotonic timestamps
Beginning modeset-vs-vblank-race-interruptible on crtc 9, connector 10
  1024x600 60 1024 1072 1104 1200 600 603 609 625 0xa 0x48 45000
..Test assertion failure function run_test_step, file kms_flip.c:886:
Last errno: 4, Interrupted system call
Failed assertion: end - start > 1 * frame_time(o) / 2 && end - start < 3 * frame_time(o) / 2
Subtest modeset-vs-vblank-race-interruptible: FAIL
Comment 3 Guo Jinxian 2014-09-02 05:36:29 UTC
The failure still able to reproduce on latest -fixes(2a592bec50994597716c633191ed6bf7af14defc) on ILK while running tests below:
igt/kms_flip/2x-dpms-vs-vblank-race
igt/kms_flip/2x-dpms-vs-vblank-race-interruptible
igt/kms_flip/2x-modeset-vs-vblank-race


[root@x-e6510 tests]# ./kms_flip --run-subtest 2x-dpms-vs-vblank-race-interruptible
IGT-Version: 1.7-gf473a55 (i686) (Linux: 3.17.0-rc2_drm-intel-fixes_2a592b_20140902+ i686)
Using monotonic timestamps
Beginning 2x-dpms-vs-vblank-race-interruptible on crtc 7:11, connector 16:13
  1366x768 60 1366 1398 1422 1426 768 771 775 806 0x9 0x48 69000
  1366x768 60 1366 1398 1422 1426 768 771 775 806 0x9 0x48 69000
Test assertion failure function run_test_step, file kms_flip.c:884:
Failed assertion: end - start > 1 * frame_time(o) / 2 && end - start < 3 * frame_time(o) / 2
Last errno: 4, Interrupted system call
Subtest 2x-dpms-vs-vblank-race-interruptible: FAIL
Comment 4 Imre Deak 2014-09-17 16:18:51 UTC
Passing to Ville, the failing assert might be a false positive.
Comment 5 lu hua 2014-10-10 07:16:10 UTC
It also impacts BYT.
Comment 6 Daniel Vetter 2014-11-27 16:39:54 UTC
Is this still an issue with latest igt and kernel?
Comment 7 Guo Jinxian 2014-11-28 08:27:52 UTC
(In reply to Daniel Vetter from comment #6)
> Is this still an issue with latest igt and kernel?

Yes, The failure is able to reproduce on latest igt and -nightly(8bee1e2b478ba0eda2385a445007aeeba195646b)


root@x-byt06:/GFX/Test/Intel_gpu_tools/intel-gpu-tools/tests# ./kms_flip --run-subtest dpms-vs-suspend
IGT-Version: 1.8-gdbac905 (x86_64) (Linux: 3.18.0-rc6_drm-intel-nightly_8bee1e_20141128+ x86_64)
Using monotonic timestamps
Unknown subtest: dpms-vs-suspend
root@x-byt06:/GFX/Test/Intel_gpu_tools/intel-gpu-tools/tests# ./kms_flip --run-subtest 2x-dpms-vs-vblank-race-interruptible
IGT-Version: 1.8-gdbac905 (x86_64) (Linux: 3.18.0-rc6_drm-intel-nightly_8bee1e_20141128+ x86_64)
Using monotonic timestamps
Beginning 2x-dpms-vs-vblank-race-interruptible on crtc 8:13, connector 28:16
  1920x1080 60 1920 1966 1996 2080 1080 1082 1086 1112 0xa 0x48 138780
  1920x1080 60 1920 1966 1996 2080 1080 1082 1086 1112 0xa 0x48 138780
Test assertion failure function run_test_step, file kms_flip.c:873:
Failed assertion: end - start > 1 * frame_time(o) / 2 && end - start < 3 * frame_time(o) / 2
Last errno: 4, Interrupted system call
Subtest 2x-dpms-vs-vblank-race-interruptible: FAIL (4.684s)
Comment 8 Ville Syrjala 2014-11-28 09:10:59 UTC
Yeah, the assert is fairly bogus. I'll see about adjusting it a bit.
Comment 9 Daniel Vetter 2014-11-28 10:08:37 UTC
The testcase was rename to vblank-vs-dpms-suspend in

commit c75dcbdac51dcc2d631a4a45049c9421e0229e16
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Tue May 20 15:45:31 2014 +0200

    tests/kms_flip: various improvements

Please retest using the new testname. I'll update the summary.
Comment 10 Daniel Vetter 2014-11-28 10:10:34 UTC
Argh threading screw-up in my MTU, strike comment #9
Comment 11 Paulo Zanoni 2015-02-24 18:49:26 UTC
It looks like IGT commit e06a7448d894392a294d89959fc1cf4e6a01fd19 references this bug, so can you please retest this against latest -nightly and igt?
Comment 12 Ding Heng 2015-02-26 08:51:16 UTC
(In reply to Paulo Zanoni from comment #11)
> It looks like IGT commit e06a7448d894392a294d89959fc1cf4e6a01fd19 references
> this bug, so can you please retest this against latest -nightly and igt?

test with following kernel commit:
0b2a1076c5cb4f383d6a8c940ffab1e27f241097(2015-02-26)
Case still fail.
root@x-bdw05:/GFX/Test/Intel_gpu_tools/intel-gpu-tools/tests# ./kms_flip --run-subtest ./kms_flip --run-subtest modeset-vs-vblank-race-interruptible
IGT-Version: 1.9-g26f4081 (x86_64) (Linux: 4.0.0-rc1_drm-intel-nightly_0b2a10_20150225+ x86_64)
Using monotonic timestamps
Beginning modeset-vs-vblank-race-interruptible on crtc 20, connector 31
  1920x1080 60 1920 1966 1996 2080 1080 1082 1086 1112 0xa 0x48 138780
(kms_flip:2726) CRITICAL: Test assertion failure function run_test_on_crtc_set, file kms_flip.c:1403:
(kms_flip:2726) CRITICAL: Failed assertion: fb_is_bound(o, o->fb_ids[0])
Subtest modeset-vs-vblank-race-interruptible failed.
Log Start
(kms_flip:2726) DEBUG: Test requirement passed: (flags & TEST_HANG) == 0 || !is_hung(drm_fd)
(kms_flip:2726) DEBUG: Test requirement passed: modes
(kms_flip:2726) INFO: Beginning modeset-vs-vblank-race-interruptible on crtc 20, connector 31
(kms_flip:2726) igt-fb-DEBUG: igt_create_fb_with_bo_size(width=1920, height=1080, format=0x34325258 [bpp=32], tiling=0, size=0
(kms_flip:2726) igt-fb-DEBUG: igt_create_fb_with_bo_size(handle=2, pitch=7680)
(kms_flip:2726) igt-fb-DEBUG: igt_create_fb_with_bo_size(width=1920, height=1080, format=0x34325258 [bpp=32], tiling=0, size=0
(kms_flip:2726) igt-fb-DEBUG: igt_create_fb_with_bo_size(handle=3, pitch=7680)
(kms_flip:2726) igt-fb-DEBUG: igt_create_fb_with_bo_size(width=1920, height=1080, format=0x34325258 [bpp=32], tiling=1, size=0
(kms_flip:2726) igt-fb-DEBUG: igt_create_fb_with_bo_size(handle=4, pitch=8192)
(kms_flip:2726) igt-kms-INFO:   1920x1080 60 1920 1966 1996 2080 1080 1082 1086 1112 0xa 0x48 138780
(kms_flip:2726) CRITICAL: Test assertion failure function run_test_on_crtc_set, file kms_flip.c:1403:
(kms_flip:2726) CRITICAL: Failed assertion: fb_is_bound(o, o->fb_ids[0])
Log End
Subtest modeset-vs-vblank-race-interruptible: FAIL (0.051s)
Received signal SIGTERM.
Comment 13 lu hua 2015-03-16 07:03:23 UTC
Test on PNV/BYT/BDW with the latest -nightly kernel.It works well.
 ./kms_flip --run-subtest modeset-vs-vblank-race-interruptible
IGT-Version: 1.9-gf59935c (i686) (Linux: 4.0.0-rc3_drm-intel-nightly_f7def4_20150314+ i686)
Using monotonic timestamps
Beginning modeset-vs-vblank-race-interruptible on crtc 22, connector 23
  1024x600 60 1024 1072 1104 1200 600 603 609 625 0xa 0x48 45000
.......
modeset-vs-vblank-race-interruptible on crtc 22, connector 23: PASSED

Beginning modeset-vs-vblank-race-interruptible on crtc 19, connector 29
  1024x768 60 1024 1048 1184 1344 768 771 777 806 0xa 0x40 65000
......................................................
modeset-vs-vblank-race-interruptible on crtc 19, connector 29: PASSED

Beginning modeset-vs-vblank-race-interruptible on crtc 22, connector 29
  1024x768 60 1024 1048 1184 1344 768 771 777 806 0xa 0x40 65000
......................................................
modeset-vs-vblank-race-interruptible on crtc 22, connector 29: PASSED

Subtest modeset-vs-vblank-race-interruptible: SUCCESS (11.591s)
Received signal SIGTERM.
Comment 14 lu hua 2015-03-16 07:03:36 UTC
Verified.Fixed.
Comment 15 Jari Tahvanainen 2017-02-10 08:42:29 UTC
Closing (>2 years) old Verified+fixed.

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.