Bug 96229

Summary: [IGT] [BXT-P/BDW] some kms_flip subtest fail due to [i915]] *ERROR* too many voltage retries, give up
Product: DRI Reporter: Humberto Israel Perez Rodriguez <humberto.i.perez.rodriguez>
Component: DRM/IntelAssignee: Jim Bride <jim.bride>
Status: CLOSED DUPLICATE QA Contact: Intel GFX Bugs mailing list <intel-gfx-bugs>
Severity: normal    
Priority: high CC: clayton, intel-gfx-bugs
Version: XOrg git   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: BDW, BXT i915 features: display/DP
Attachments:
Description Flags
dmesg
none
broadwell dmesg debug=0x1f kms_flip render-flip-vs-modeset-interruptible, failing setcrtc
none
dmesg2.log none

Description Humberto Israel Perez Rodriguez 2016-05-26 19:43:40 UTC
Created attachment 124111 [details]
dmesg

Bug description
===============================================
Some kms_flip subtest fail due to [i915]] *ERROR* too many voltage retries, give up


Tests cases
===============================================
igt@kms_flip@2x-vblank-vs-suspend
igt@kms_flip@vblank-vs-modeset-rpm-interruptible
igt@kms_flip@vblank-vs-dpms-rpm-interruptible
igt@kms_flip@vblank-vs-dpms-rpm
igt@kms_flip@vblank-vs-suspend
igt@kms_flip@2x-flip-vs-blocking-wf-vblank
igt@kms_flip@2x-flip-vs-expired-vblank
igt@kms_flip@2x-plain-flip-fb-recreate-interruptible
igt@kms_flip@2x-flip-vs-expired-vblank-interruptible
igt@kms_flip@2x-plain-flip-ts-check-interruptible
igt@kms_flip@2x-plain-flip-fb-recreate
igt@kms_flip@2x-plain-flip-ts-check
igt@kms_flip@vblank-vs-modeset-rpm
igt@kms_flip@2x-vblank-vs-suspend-interruptible
igt@kms_flip@vblank-vs-suspend-interruptible
igt@kms_flip@basic-flip-vs-wf_vblank


Test output
===============================================
IGT-Version: 1.14-gcce2ff0 (x86_64) (Linux: 4.6.0-rc7-drm-intel-nightly-ww20-commit-5528ede+ x86_64)
(kms_flip:3195) igt-core-DEBUG: Test requirement passed: !igt_run_in_simulation()
(kms_flip:3195) drmtest-DEBUG: Test requirement passed: fd >= 0
(kms_flip:3195) drmtest-DEBUG: Test requirement passed: fd >= 0
(kms_flip:3195) drmtest-DEBUG: Test requirement passed: drmSetMaster(fd) == 0
(kms_flip:3195) drmtest-DEBUG: Test requirement passed: fd >= 0
(kms_flip:3195) igt-kms-DEBUG: VT: graphics mode set (mode was 0x0)
Using monotonic timestamps
(kms_flip:3195) igt-core-DEBUG: Starting subtest: basic-flip-vs-wf_vblank
(kms_flip:3195) DEBUG: Test requirement passed: (flags & TEST_HANG) == 0 || !is_wedged(drm_fd)
(kms_flip:3195) DEBUG: Test requirement passed: modes
Beginning basic-flip-vs-wf_vblank on pipe A, connector eDP-1
(kms_flip:3195) igt-fb-DEBUG: igt_create_fb_with_bo_size(width=1920, height=1080, format=0x34325258, tiling=0x0, size=0)
(kms_flip:3195) igt-fb-DEBUG: igt_create_fb_with_bo_size(handle=2, pitch=7680)
(kms_flip:3195) igt-fb-DEBUG: igt_create_fb_with_bo_size(width=1920, height=1080, format=0x34325258, tiling=0x0, size=0)
(kms_flip:3195) igt-fb-DEBUG: igt_create_fb_with_bo_size(handle=3, pitch=7680)
  1920x1080 60 1920 1968 2018 2052 1080 1084 1086 1122 0xa 0x48 138120
.(kms_flip:3195) DEBUG: name = flip
last_ts = 0.0 usec
last_received_ts = 0.0 usec
last_seq = 0
current_ts = 2135.223582 usec
current_received_ts = 2135.223193 usec
current_seq = 111571
count = 0
seq_step = 1
(kms_flip:3195) DEBUG: name = vblank
last_ts = 0.0 usec
last_received_ts = 0.0 usec
last_seq = 0
current_ts = 2135.390283 usec
current_received_ts = 2135.389773 usec
current_seq = 111581
count = 0
seq_step = 10
.(kms_flip:3195) DEBUG: name = flip
last_ts = 2135.223582 usec
last_received_ts = 2135.223193 usec
last_seq = 111571
current_ts = 2135.406949 usec
current_received_ts = 2135.406878 usec
current_seq = 111582
count = 1
seq_step = 1
(kms_flip:3195) CRITICAL: Test assertion failure function check_state, file kms_flip.c:698:
(kms_flip:3195) CRITICAL: Failed assertion: fabs((((double) diff.tv_usec) - usec_interflip) / usec_interflip) <= 0.005
(kms_flip:3195) CRITICAL: inter-flip ts jitter: 0s, 183367usec
Stack trace:
  #0 [__igt_fail_assert+0x101]
  #1 [check_state+0x32b]
  #2 [<unknown>+0x32b]
Subtest basic-flip-vs-wf_vblank failed.
**** DEBUG ****
(kms_flip:3195) DEBUG: Test requirement passed: (flags & TEST_HANG) == 0 || !is_wedged(drm_fd)
(kms_flip:3195) DEBUG: Test requirement passed: modes
(kms_flip:3195) INFO: Beginning basic-flip-vs-wf_vblank on pipe A, connector eDP-1
(kms_flip:3195) igt-fb-DEBUG: igt_create_fb_with_bo_size(width=1920, height=1080, format=0x34325258, tiling=0x0, size=0)
(kms_flip:3195) igt-fb-DEBUG: igt_create_fb_with_bo_size(handle=2, pitch=7680)
(kms_flip:3195) igt-fb-DEBUG: igt_create_fb_with_bo_size(width=1920, height=1080, format=0x34325258, tiling=0x0, size=0)
(kms_flip:3195) igt-fb-DEBUG: igt_create_fb_with_bo_size(handle=3, pitch=7680)
(kms_flip:3195) igt-kms-INFO:   1920x1080 60 1920 1968 2018 2052 1080 1084 1086 1122 0xa 0x48 138120
(kms_flip:3195) DEBUG: name = flip
last_ts = 0.0 usec
last_received_ts = 0.0 usec
last_seq = 0
current_ts = 2135.223582 usec
current_received_ts = 2135.223193 usec
current_seq = 111571
count = 0
seq_step = 1
(kms_flip:3195) DEBUG: name = vblank
last_ts = 0.0 usec
last_received_ts = 0.0 usec
last_seq = 0
current_ts = 2135.390283 usec
current_received_ts = 2135.389773 usec
current_seq = 111581
count = 0
seq_step = 10
(kms_flip:3195) DEBUG: name = flip
last_ts = 2135.223582 usec
last_received_ts = 2135.223193 usec
last_seq = 111571
current_ts = 2135.406949 usec
current_received_ts = 2135.406878 usec
current_seq = 111582
count = 1
seq_step = 1
(kms_flip:3195) CRITICAL: Test assertion failure function check_state, file kms_flip.c:698:
(kms_flip:3195) CRITICAL: Failed assertion: fabs((((double) diff.tv_usec) - usec_interflip) / usec_interflip) <= 0.005
(kms_flip:3195) CRITICAL: inter-flip ts jitter: 0s, 183367usec
****  END  ****
Subtest basic-flip-vs-wf_vblank: FAIL (2.348s)
(kms_flip:3195) igt-core-DEBUG: Exiting with status code 99
(kms_flip:3195) igt-kms-DEBUG: VT: original mode 0x0 restored


Expected result
===============================================
Test must pass


Actual result
===============================================
Test are failing


Attachments
===============================================
dmesg


Gfx stack information
===============================================
 --> Component : drm 
	 tag : libdrm-2.4.68-4-g7aab852 
	 commit : 7aab852 
 --> Component : mesa 
	 tag : mesa-11.1.2 
	 commit : 7bcd827 
 --> Component : cairo 
	 tag : 1.15.2 
	 commit : db8a7f1 
 --> Component : intel-gpu-tools
	 tag : intel-gpu-tools-1.14-346-gcce2ff0
	 commit : cce2ff0


Software information
===============================================
Kernel version                      : 4.6.0-rc7-drm-intel-nightly-ww20-commit-5528ede+
Linux distribution                  : Ubuntu 15.10
Architecture                        : 64-bit
Bios revision                       : 138.22
KSC revision                        : 1.12
DMC revision                        : 1.07
GUC revision                        : 8.7


Hardware information
===============================================
Platform                            : BXT-P
Motherboard model                   : Broxton P
Motherboard type                    : NOTEBOOK Hand Held
Motherboard manufacturer            : Intel Corp.
CPU family                          : B1
CPU information                     : 06/5c
GPU Card                            : Intel Corporation Device 5a84 (rev 0a) (prog-if 00 [VGA controller])


kernel
===============================================
commit 2ec823981d62c56d1511bda42b8295e31ece800f
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Sun May 22 18:23:13 2016 +0200

    drm-intel-nightly: 2016y-05m-22d-16h-22m-45s UTC integration manifest
Comment 1 yann 2016-06-02 11:04:17 UTC
see comment bug 86767#c36 for APL
Comment 2 Humberto Israel Perez Rodriguez 2016-06-03 17:37:14 UTC
The following tests cases are fail with the following configuration :


Tests cases
===============================================
igt@kms_flip@2x-plain-flip-ts-check-interruptible
igt@kms_flip@2x-vblank-vs-suspend
igt@kms_flip@2x-vblank-vs-suspend-interruptible
igt@kms_flip@2x-flip-vs-expired-vblank-interruptible
igt@kms_flip@2x-plain-flip-fb-recreate-interruptible
igt@kms_flip@2x-flip-vs-expired-vblank
igt@kms_flip@vblank-vs-suspend
igt@kms_flip@2x-plain-flip-fb-recreate


Gfx stack information
===============================================
--> Component : drm 
	 tag : libdrm-2.4.68 
	 commit : fc09c5a 
--> Component : cairo 
	 tag : 1.15.2 
	 commit : db8a7f1 
--> Component : intel-gpu-tools 
	 tag : intel-gpu-tools-1.14-348-g303b380 
	 commit : 303b380 
 
Software information
===============================================
Kernel version                      : 4.6.0-drm-intel-nightly-ww23-commit-fb023a2+
Linux distribution                  : Ubuntu 16.04
Architecture                        : 64-bit
Bios revision                       : 138.25
KSC revision                        : 1.12
DMC revision                        : 1.07

Hardware information
===============================================
Platform                            : BXT-P
Motherboard model                   : Broxton P
Motherboard type                    : NOTEBOOK Hand Held
Motherboard manufacturer            : Intel Corp.
CPU family                          : B1
CPU information                     : 06/5c
GPU Card                            : Intel Corporation Device 5a84 (rev 0a) (prog-if 00 [VGA controller])

kernel
===============================================
commit fb023a2062df06c9e097e1f8f2bcf252194b9413
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Mon May 30 10:46:14 2016 +0200

    drm-intel-nightly: 2016y-05m-30d-08h-45m-53s UTC integration manifest
Comment 3 Jani Nikula 2016-06-06 09:31:29 UTC
(In reply to Humberto Israel Perez Rodriguez from comment #0)
> Some kms_flip subtest fail due to [i915]] *ERROR* too many voltage retries,
> give up

The attached dmesg doesn't actually have that error scenario. Please reproduce and attach dmesg.
Comment 4 Maarten Lankhorst 2016-06-06 10:16:34 UTC
I've seen this happen a lot.

On my broadwell with DP-MST:

[  118.613058] kms_flip: starting subtest render-flip-vs-modeset-interruptible
[  124.607774] [drm:intel_dp_link_training_clock_recovery [i915]] *ERROR* too many voltage retries, give up
[  124.642633] [drm:intel_dp_link_training_clock_recovery [i915]] *ERROR* too many voltage retries, give up
[  124.678285] [drm:intel_dp_link_training_clock_recovery [i915]] *ERROR* too many voltage retries, give up
[  124.714072] [drm:intel_dp_link_training_clock_recovery [i915]] *ERROR* too many voltage retries, give up
[  129.865518] [drm:intel_dp_link_training_clock_recovery [i915]] *ERROR* too many voltage retries, give up
[  144.650761] [drm:intel_dp_link_training_clock_recovery [i915]] *ERROR* too many voltage retries, give up
[  191.758122] kms_flip: exiting, ret=0
Comment 5 Maarten Lankhorst 2016-06-06 11:43:37 UTC
Created attachment 124358 [details]
broadwell dmesg debug=0x1f kms_flip render-flip-vs-modeset-interruptible, failing setcrtc

This is on my DP-MST Broadwell, same error. However it does end with 'Channel EQ done. DP Training successful'. So I'm uncertain if link training failed, or if the ERROR is just noise that should be silenced.
Comment 6 dog 2016-06-06 16:00:45 UTC
Humberto, what is the specific DP configuration being used when you see "Some kms_flip subtest fail" as described in this bug?
Comment 7 Jim Bride 2016-06-06 16:10:28 UTC
For any link training related issues, there's some additional information that it would be very useful to have.

1) Make and model number of monitor being used.
2) Relevant cabling information (Are any dongles / converters in use?  If so
   what are the make / model of the dongles?  Of particular interest on BXT would
   be if any kind of USB-C dongle is in play.)
3) If DP MST, what is the make / model of the branch device in use?  Are there any
   other monitors connected to the topology?
Comment 8 yann 2016-06-07 11:46:27 UTC
Reducing to high since this is not a blocker for APL and tracking "vblank not available on crtc 0, ret=-22" issue on APL in bug 96419 since we are considering root cause rather than tracking igt test run failures
Comment 9 Maarten Lankhorst 2016-06-08 11:31:26 UTC
It's a Dell UP2414Q. There is a DP cable from the system directly to the monitor. I'm not sure about any branch device, MST is handled by the monitor.
Comment 10 yann 2016-06-08 17:31:22 UTC
Consolidating "clock recovery fails with too many full/voltage retries" bugs into one bug
So continue to track this in bug 96436
Comment 11 yann 2016-06-08 17:42:21 UTC

*** This bug has been marked as a duplicate of bug 96436 ***
Comment 12 Humberto Israel Perez Rodriguez 2016-06-08 18:45:27 UTC
(In reply to Jani Nikula from comment #3)
> (In reply to Humberto Israel Perez Rodriguez from comment #0)
> > Some kms_flip subtest fail due to [i915]] *ERROR* too many voltage retries,
> > give up
> 
> The attached dmesg doesn't actually have that error scenario. Please
> reproduce and attach dmesg.

Please see the attached dmesg2.log
Comment 13 Humberto Israel Perez Rodriguez 2016-06-08 18:45:58 UTC
Created attachment 124406 [details]
dmesg2.log
Comment 14 Humberto Israel Perez Rodriguez 2016-06-08 19:07:05 UTC
(In reply to dog from comment #6)
> Humberto, what is the specific DP configuration being used when you see
> "Some kms_flip subtest fail" as described in this bug?

most of this tests needed at least two external displays (DP + HDMI)

for DP i have the following panels :

- 28" LED-Lit 4K Monitor - PB287Q ASUS
- Dell 2408 LCD Monitor

and i only used DP cables (not dongles)
Comment 15 Imre Deak 2016-06-08 19:10:48 UTC
(In reply to Humberto Israel Perez Rodriguez from comment #13)
> Created attachment 124406 [details]
> dmesg2.log

This is from an old kernel, any reason you are not using drm-intel-nightly?

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.