Bug 82446

Summary: [SNB/IVB/HSW/BSW Regression]igt/kms_flip subcases flip-vs-expired-vblank and flip-vs-expired-vblank-interruptible fail with Failed assertion: timercmp(&reply.ts, &o->flip_state.last_ts, ==)
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: highest CC: intel-gfx-bugs, przanoni
Version: unspecifiedKeywords: bisect_pending
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
dmesg
none
dmesg none

Description Guo Jinxian 2014-08-11 05:41:03 UTC
Created attachment 104407 [details]
dmesg

==System Environment==
--------------------------
Regression: Yes.
It only occurs on -nightly branch
On -nihgtly branch(c3b4c0436dffd0a2d25d9583bd6c3e64f5090603) the cases were another bug 79108

Non-working platforms: IVB HSW

==kernel==
--------------------------
origin/drm-intel-nightly: ee55e72e4941947049780df49f01d320f1b98a4b(fails)
    drm-intel-nightly: 2014y-08m-08d-21h-15m-06s integration manifest
origin/drm-intel-next-queued: fdd508a6419217cce28213f3c9bd27c02a0d4c71(works)
    drm/i915: Call .update_primary_plane in intel_{enable, disable}_primary_hw_plane()
origin/drm-intel-fixes: be71eabebaf9f142612d34d42292b454e984dcb5(works)
    Revert "drm/i915: Enable semaphores on BDW"
origin/drm-fixes: 1b2c4869d8247f9e202fa8a73777c34adc62d409(works)
    drm/radeon: fix cut and paste issue for hawaii.
origin/drm-next: 7963e9db1b1f842fdc53309baa8714d38e9f5681(works)
    Revert "drm: drop redundant drm_file->is_master"

==Bug detailed description==
igt/kms_flip subcases flip-vs-expired-vblank and flip-vs-expired-vblank-interruptible fail. It only occurs on -nightly branch. the result was pass on other branches.

Output:
[root@x-hsw24 tests]# ./kms_flip --run-subtest flip-vs-expired-vblank-interruptible
IGT-Version: 1.7-ga17f060 (x86_64) (Linux: 3.16.0_drm-intel-nightly_ee55e7_20140811+ x86_64)
Using monotonic timestamps
Beginning flip-vs-expired-vblank-interruptible on crtc 7, connector 18
  1024x768 60 1024 1048 1184 1344 768 771 777 806 0xa 0x40 65000
.Test assertion failure function run_test_step, file kms_flip.c:840:
Failed assertion: timercmp(&reply.ts, &o->flip_state.last_ts, ==)
Last errno: 4, Interrupted system call
Subtest flip-vs-expired-vblank-interruptible: FAIL

==Reproduce steps==
---------------------------- 
1. ./kms_flip --run-subtest flip-vs-expired-vblank-interruptible
Comment 1 Imre Deak 2014-08-15 13:25:13 UTC
It looks like this has been fixed in the latest -nightly, could you retest?
Comment 2 Guo Jinxian 2014-08-18 05:45:11 UTC
Created attachment 104789 [details]
dmesg

(In reply to comment #1)
> It looks like this has been fixed in the latest -nightly, could you retest?

Test still failed on latest -nightly(186631131a9289dad22f51315d78b9b6ac5b425f) on HSW

[root@x-hsw24 tests]# ./kms_flip --run-subtest flip-vs-expired-vblank-interruptible
IGT-Version: 1.7-g5c7bcb1 (x86_64) (Linux: 3.16.0_drm-intel-nightly_186631_20140818+ x86_64)
Using monotonic timestamps
Beginning flip-vs-expired-vblank-interruptible on crtc 7, connector 18
  1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
.Test assertion failure function run_test_step, file kms_flip.c:840:
Failed assertion: timercmp(&reply.ts, &o->flip_state.last_ts, ==)
Last errno: 4, Interrupted system call
Subtest flip-vs-expired-vblank-interruptible: FAIL
Comment 3 Imre Deak 2014-08-18 12:04:25 UTC
(In reply to comment #2)
> Created attachment 104789 [details]
> dmesg
> 
> (In reply to comment #1)
> > It looks like this has been fixed in the latest -nightly, could you retest?
> 
> Test still failed on latest
> -nightly(186631131a9289dad22f51315d78b9b6ac5b425f) on HSW

Ok, I've only tested on IVB and there I couldn't reproduce it. CC'ing Paulo for any clues regarding HSW.
Comment 4 Guo Jinxian 2014-09-01 03:01:38 UTC
The failure still able to reproduce on latest -nightly(6e9c5b9d428bb075293ec865ba58f90931187a48) on SNB

[root@x-sgb4 tests]# ./kms_flip --run-subtest flip-vs-expired-vblank
IGT-Version: 1.7-gd6af004 (i686) (Linux: 3.17.0-rc2_drm-intel-nightly_6e9c5b_20140901+ i686)
Using monotonic timestamps
Beginning flip-vs-expired-vblank on crtc 8, connector 14
  1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
.Test assertion failure function run_test_step, file kms_flip.c:838:
Failed assertion: timercmp(&reply.ts, &o->flip_state.last_ts, ==)
Subtest flip-vs-expired-vblank: FAIL


Case list:
igt/kms_flip/flip-vs-expired-vblank
igt/kms_flip/flip-vs-expired-vblank-interruptible
igt/kms_flip/vblank-vs-modeset-suspend
igt/kms_flip/vblank-vs-modeset-suspend-interruptible
igt/kms_flip/vblank-vs-suspend-interruptible
Comment 5 Guo Jinxian 2014-09-11 09:06:58 UTC
The failure is able to reproduce on latest -nightly() on BSW while running test igt/kms_flip/flip-vs-expired-vblank-interruptible and flip-vs-expired-vblank

[root@x-bsw01 tests]# ./kms_flip --run-subtest flip-vs-expired-vblank-interruptible
IGT-Version: 1.8-gd9d3f4b (x86_64) (Linux: 3.17.0-rc4_drm-intel-nightly_72faa6_20140911+ x86_64)
Using monotonic timestamps
Beginning flip-vs-expired-vblank-interruptible on crtc 8, connector 31
  1920x1080 60 1920 1966 1996 2080 1080 1082 1086 1112 0xa 0x48 138780
..Test assertion failure function run_test_step, file kms_flip.c:838:
Failed assertion: timercmp(&reply.ts, &o->flip_state.last_ts, ==)
Last errno: 4, Interrupted system call
Subtest flip-vs-expired-vblank-interruptible: FAIL (2.439s)
Comment 6 Daniel Vetter 2014-11-27 16:31:58 UTC
Can you please retest?

Also let's restrict this to the timestamp mismatch bug, please check that the failure matches in igt. I'll adjust the summary.
Comment 7 Daniel Vetter 2014-11-27 16:33:20 UTC
Also the bug that blocked bisecting (bug 79108) is fixed now in igt. So bisecting should be possible with latest igt but different kernels.
Comment 8 Guo Jinxian 2014-12-01 03:02:19 UTC
Test passed on latest -nightly(0db9cf7742874ee2c09a35b640c1bb04cb379eb6)


[root@x-hsw24 tests]# ./kms_flip --run-subtest flip-vs-expired-vblank-interruptible
IGT-Version: 1.8-gdbac905 (x86_64) (Linux: 3.18.0-rc6_drm-intel-nightly_0db9cf_20141201+ x86_64)
Using monotonic timestamps
Beginning flip-vs-expired-vblank-interruptible on crtc 8, connector 18
  1024x768 60 1024 1048 1184 1344 768 771 777 806 0xa 0x40 65000
.........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
flip-vs-expired-vblank-interruptible on crtc 8, connector 18: PASSED

Beginning flip-vs-expired-vblank-interruptible on crtc 12, connector 18
  1024x768 60 1024 1048 1184 1344 768 771 777 806 0xa 0x40 65000
.........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
flip-vs-expired-vblank-interruptible on crtc 12, connector 18: PASSED

Beginning flip-vs-expired-vblank-interruptible on crtc 16, connector 18
  1024x768 60 1024 1048 1184 1344 768 771 777 806 0xa 0x40 65000
.........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
flip-vs-expired-vblank-interruptible on crtc 16, connector 18: PASSED

Subtest flip-vs-expired-vblank-interruptible: SUCCESS (32.296s)
Comment 9 Jari Tahvanainen 2017-02-10 08:56:45 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.