Bug 98352

Summary: [ctg bat] igt@kms_flip@basic-flip-vs-wf_vblank
Product: DRI Reporter: Chris Wilson <chris>
Component: IGTAssignee: Default DRI bug account <dri-devel>
Status: CLOSED NOTABUG QA Contact:
Severity: blocker    
Priority: medium CC: intel-gfx-bugs
Version: XOrg git   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Chris Wilson 2016-10-20 09:13:34 UTC
https://intel-gfx-ci.01.org/CI/CI_DRM_1738/fi-ctg-l9400/html/fi-ctg-l9400@CI_DRM_1738/igt@kms_flip@basic-flip-vs-wf_vblank.html

Variance in vblanks larger than expected? Maybe a test bug?

 	

(kms_flip:8525) CRITICAL: Test assertion failure function check_state, file kms_flip.c:699:
(kms_flip:8525) CRITICAL: Failed assertion: fabs((usec_diff - usec_interflip) / usec_interflip) <= 0.005
(kms_flip:8525) CRITICAL: Last errno: 25, Inappropriate ioctl for device
(kms_flip:8525) CRITICAL: inconsistent flip ts/seq: last 388.578513/13071, current 388.779752/13081
Subtest basic-flip-vs-wf_vblank failed.
**** DEBUG ****
(kms_flip:8525) DEBUG: Test requirement passed: (flags & TEST_HANG) == 0 || !is_wedged(drm_fd)
(kms_flip:8525) DEBUG: Test requirement passed: modes
(kms_flip:8525) INFO: Beginning basic-flip-vs-wf_vblank on pipe A, connector LVDS-1
(kms_flip:8525) igt-fb-DEBUG: igt_create_fb_with_bo_size(width=1440, height=900, format=0x34325258, tiling=0x0, size=0)
(kms_flip:8525) igt-fb-DEBUG: igt_create_fb_with_bo_size(handle=2, pitch=5760)
(kms_flip:8525) igt-fb-DEBUG: igt_create_fb_with_bo_size(width=1440, height=900, format=0x34325258, tiling=0x0, size=0)
(kms_flip:8525) igt-fb-DEBUG: igt_create_fb_with_bo_size(handle=3, pitch=5760)
(kms_flip:8525) igt-kms-INFO:   1440x900 50 1440 1464 1480 1600 900 903 909 926 0xa 0x48 74080
(kms_flip:8525) DEBUG: name = flip
last_ts = 0.000000
last_received_ts = 0.000000
last_seq = 0
current_ts = 388.578513
current_received_ts = 388.578108
current_seq = 13071
count = 0
seq_step = 1
(kms_flip:8525) DEBUG: name = vblank
last_ts = 0.000000
last_received_ts = 0.000000
last_seq = 0
current_ts = 388.759632
current_received_ts = 388.759119
current_seq = 13080
count = 0
seq_step = 10
(kms_flip:8525) DEBUG: name = flip
last_ts = 388.578513
last_received_ts = 388.578108
last_seq = 13071
current_ts = 388.779752
current_received_ts = 388.779347
current_seq = 13081
count = 1
seq_step = 1
(kms_flip:8525) CRITICAL: Test assertion failure function check_state, file kms_flip.c:699:
(kms_flip:8525) CRITICAL: Failed assertion: fabs((usec_diff - usec_interflip) / usec_interflip) <= 0.005
(kms_flip:8525) CRITICAL: Last errno: 25, Inappropriate ioctl for device
(kms_flip:8525) CRITICAL: inconsistent flip ts/seq: last 388.578513/13071, current 388.779752/13081
****  END  ****
Comment 1 yann 2016-10-21 09:37:42 UTC
Reference to Chris' patch: https://patchwork.freedesktop.org/series/14114/
Comment 2 Ville Syrjala 2016-10-24 10:03:33 UTC
The problem on this machine seems to be that the clock is about .6% off, whereas the test will accept a deviation up to .5%.

I also have a VLV machine with DSI that suffers from a similar problem. I think for internal panels the best solution might be for the kernel to fix up the reported clock for the fixed mode. Not sure what we'd do about the EDID though, assuming the the panel has one and the difference in the clocks would be large enough to be visible in the EDID timings. And of course not all modes coming from the EDID even have actual detailed timing descriptors.
Comment 3 Chris Wilson 2016-10-24 10:14:41 UTC
Yeah, I'm just sending a patch to detect the "clock error" and teach BAT to skip this test (adding another test to kms_setmode to actually complain about the mismatch). Since userspace is using the dotclock to calculate the MscRate (oh, the merriment with dynamic refresh) we should think of someway to remove the discrepancy between the modeline and actual hardware value. At the very basic level, could we fixup the mode as reported via GetCrtc?
Comment 4 Chris Wilson 2016-10-25 11:07:39 UTC
The modeline is inconsistent. Closing for BAT as we skip over this inconsistency, will address in a separate non-BAT test with kms_setmode.

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.