Bug 90307 - [IVB] at boot all displays cycled on/off over and over *ERROR* CPU pipe B FIFO underrun
Summary: [IVB] at boot all displays cycled on/off over and over *ERROR* CPU pipe B FIF...
Status: CLOSED FIXED
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Intel (show other bugs)
Version: DRI git
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: Intel GFX Bugs mailing list
QA Contact: Intel GFX Bugs mailing list
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-05-04 21:13 UTC by Chris Bainbridge
Modified: 2017-07-24 22:47 UTC (History)
1 user (show)

See Also:
i915 platform: IVB
i915 features: display/Other


Attachments

Description Chris Bainbridge 2015-05-04 21:13:46 UTC
Using linux git 6c3c1eb (May 1st)
Macbook with 3 monitors

Booting is normally fine, but on one boot no displays came on, instead every display, including the internal laptop display, seemed to be cycling on and off rapidly. Odd.

[    7.309929] [drm:intel_set_cpu_fifo_underrun_reporting] *ERROR* uncleared fifo underrun on pipe B
[    7.309935] [drm:intel_cpu_fifo_underrun_irq_handler] *ERROR* CPU pipe B FIFO underrun
[    7.309950] [drm:intel_set_pch_fifo_underrun_reporting] *ERROR* uncleared pch fifo underrun on pch transcoder B
[    7.309953] [drm:intel_pch_fifo_underrun_irq_handler] *ERROR* PCH transcoder B FIFO underrun
[    8.357580] ax88179_178a 1-3.3.4.1:1.0 eth0: ax88179 - Link status is: 1
[    8.386869] random: nonblocking pool is initialized
[    9.575978] [drm:intel_set_pch_fifo_underrun_reporting] *ERROR* uncleared pch fifo underrun on pch transcoder C
[    9.733064] [drm:intel_set_cpu_fifo_underrun_reporting] *ERROR* uncleared fifo underrun on pipe B
[    9.733070] [drm:intel_cpu_fifo_underrun_irq_handler] *ERROR* CPU pipe B FIFO underrun
[    9.733079] [drm:intel_set_pch_fifo_underrun_reporting] *ERROR* uncleared pch fifo underrun on pch transcoder B
[    9.733082] [drm:intel_pch_fifo_underrun_irq_handler] *ERROR* PCH transcoder B FIFO underrun
[   12.166051] [drm:intel_set_pch_fifo_underrun_reporting] *ERROR* uncleared pch fifo underrun on pch transcoder C
[   12.303010] [drm:intel_set_cpu_fifo_underrun_reporting] *ERROR* uncleared fifo underrun on pipe B
[   12.303017] [drm:intel_cpu_fifo_underrun_irq_handler] *ERROR* CPU pipe B FIFO underrun
[   12.303025] [drm:intel_set_pch_fifo_underrun_reporting] *ERROR* uncleared pch fifo underrun on pch transcoder B
[   12.303027] [drm:intel_pch_fifo_underrun_irq_handler] *ERROR* PCH transcoder B FIFO underrun
[   14.771931] [drm:intel_set_pch_fifo_underrun_reporting] *ERROR* uncleared pch fifo underrun on pch transcoder C
[   14.908020] [drm:intel_set_cpu_fifo_underrun_reporting] *ERROR* uncleared fifo underrun on pipe B
[   14.908027] [drm:intel_cpu_fifo_underrun_irq_handler] *ERROR* CPU pipe B FIFO underrun
[   14.908037] [drm:intel_set_pch_fifo_underrun_reporting] *ERROR* uncleared pch fifo underrun on pch transcoder B
[   14.908039] [drm:intel_pch_fifo_underrun_irq_handler] *ERROR* PCH transcoder B FIFO underrun
[   17.361970] [drm:intel_set_pch_fifo_underrun_reporting] *ERROR* uncleared pch fifo underrun on pch transcoder C
[   17.502117] [drm:intel_set_cpu_fifo_underrun_reporting] *ERROR* uncleared fifo underrun on pipe B
[   17.502124] [drm:intel_cpu_fifo_underrun_irq_handler] *ERROR* CPU pipe B FIFO underrun
[   17.502133] [drm:intel_set_pch_fifo_underrun_reporting] *ERROR* uncleared pch fifo underrun on pch transcoder B
[   17.502134] [drm:intel_pch_fifo_underrun_irq_handler] *ERROR* PCH transcoder B FIFO underrun
[   19.968054] [drm:intel_set_pch_fifo_underrun_reporting] *ERROR* uncleared pch fifo underrun on pch transcoder C
[   20.102951] [drm:intel_set_cpu_fifo_underrun_reporting] *ERROR* uncleared fifo underrun on pipe B
[   20.102957] [drm:intel_cpu_fifo_underrun_irq_handler] *ERROR* CPU pipe B FIFO underrun
[   20.102966] [drm:intel_set_pch_fifo_underrun_reporting] *ERROR* uncleared pch fifo underrun on pch transcoder B
[   20.102968] [drm:intel_pch_fifo_underrun_irq_handler] *ERROR* PCH transcoder B FIFO underrun
[   22.558021] [drm:intel_set_pch_fifo_underrun_reporting] *ERROR* uncleared pch fifo underrun on pch transcoder C
[   22.692150] [drm:intel_set_cpu_fifo_underrun_reporting] *ERROR* uncleared fifo underrun on pipe B
[   22.692157] [drm:intel_cpu_fifo_underrun_irq_handler] *ERROR* CPU pipe B FIFO underrun
[   22.692166] [drm:intel_set_pch_fifo_underrun_reporting] *ERROR* uncleared pch fifo underrun on pch transcoder B
[   22.692167] [drm:intel_pch_fifo_underrun_irq_handler] *ERROR* PCH transcoder B FIFO underrun
[   25.164746] [drm:intel_set_pch_fifo_underrun_reporting] *ERROR* uncleared pch fifo underrun on pch transcoder C
[   25.300187] [drm:intel_set_cpu_fifo_underrun_reporting] *ERROR* uncleared fifo underrun on pipe B
[   25.300194] [drm:intel_cpu_fifo_underrun_irq_handler] *ERROR* CPU pipe B FIFO underrun
[   25.300203] [drm:intel_set_pch_fifo_underrun_reporting] *ERROR* uncleared pch fifo underrun on pch transcoder B
[   25.300205] [drm:intel_pch_fifo_underrun_irq_handler] *ERROR* PCH transcoder B FIFO underrun
[   27.773187] [drm:intel_set_pch_fifo_underrun_reporting] *ERROR* uncleared pch fifo underrun on pch transcoder C
[   27.910214] [drm:intel_set_cpu_fifo_underrun_reporting] *ERROR* uncleared fifo underrun on pipe B
[   27.910220] [drm:intel_cpu_fifo_underrun_irq_handler] *ERROR* CPU pipe B FIFO underrun
[   27.910227] [drm:intel_set_pch_fifo_underrun_reporting] *ERROR* uncleared pch fifo underrun on pch transcoder B
[   27.910229] [drm:intel_pch_fifo_underrun_irq_handler] *ERROR* PCH transcoder B FIFO underrun
[   30.362202] [drm:intel_set_pch_fifo_underrun_reporting] *ERROR* uncleared pch fifo underrun on pch transcoder C
[   30.504276] [drm:intel_set_cpu_fifo_underrun_reporting] *ERROR* uncleared fifo underrun on pipe B
[   30.504295] [drm:intel_cpu_fifo_underrun_irq_handler] *ERROR* CPU pipe B FIFO underrun
[   30.504304] [drm:intel_set_pch_fifo_underrun_reporting] *ERROR* uncleared pch fifo underrun on pch transcoder B
[   30.504306] [drm:intel_pch_fifo_underrun_irq_handler] *ERROR* PCH transcoder B FIFO underrun
[   32.970648] [drm:intel_set_pch_fifo_underrun_reporting] *ERROR* uncleared pch fifo underrun on pch transcoder C
[   33.105024] [drm:intel_set_cpu_fifo_underrun_reporting] *ERROR* uncleared fifo underrun on pipe B
[   33.105030] [drm:intel_cpu_fifo_underrun_irq_handler] *ERROR* CPU pipe B FIFO underrun
[   33.105039] [drm:intel_set_pch_fifo_underrun_reporting] *ERROR* uncleared pch fifo underrun on pch transcoder B
[   33.105041] [drm:intel_pch_fifo_underrun_irq_handler] *ERROR* PCH transcoder B FIFO underrun
[   35.577461] [drm:intel_set_pch_fifo_underrun_reporting] *ERROR* uncleared pch fifo underrun on pch transcoder C
[   35.718331] [drm:intel_set_cpu_fifo_underrun_reporting] *ERROR* uncleared fifo underrun on pipe B
[   35.718337] [drm:intel_cpu_fifo_underrun_irq_handler] *ERROR* CPU pipe B FIFO underrun
[   35.718345] [drm:intel_set_pch_fifo_underrun_reporting] *ERROR* uncleared pch fifo underrun on pch transcoder B
[   35.718347] [drm:intel_pch_fifo_underrun_irq_handler] *ERROR* PCH transcoder B FIFO underrun
[   38.151096] [drm:intel_set_pch_fifo_underrun_reporting] *ERROR* uncleared pch fifo underrun on pch transcoder C
[   38.286267] [drm:intel_set_cpu_fifo_underrun_reporting] *ERROR* uncleared fifo underrun on pipe B
[   38.286273] [drm:intel_cpu_fifo_underrun_irq_handler] *ERROR* CPU pipe B FIFO underrun
[   38.286382] [drm:intel_set_pch_fifo_underrun_reporting] *ERROR* uncleared pch fifo underrun on pch transcoder B
[   38.286386] [drm:intel_pch_fifo_underrun_irq_handler] *ERROR* PCH transcoder B FIFO underrun
[   40.775336] [drm:intel_set_pch_fifo_underrun_reporting] *ERROR* uncleared pch fifo underrun on pch transcoder C
[   40.912389] [drm:intel_set_cpu_fifo_underrun_reporting] *ERROR* uncleared fifo underrun on pipe B
[   40.912396] [drm:intel_cpu_fifo_underrun_irq_handler] *ERROR* CPU pipe B FIFO underrun
[   40.912407] [drm:intel_set_pch_fifo_underrun_reporting] *ERROR* uncleared pch fifo underrun on pch transcoder B

The rest of dmesg just shows those errors repeating until I turned off the laptop 5 minutes later.
Comment 1 Ander Conselvan de Oliveira 2015-05-11 12:51:09 UTC
Please boot your kernel with drm.debug=0x1e in its command line, reproduce the bug again and then attach the output of dmesg here.

Also, could you check if the issue exists with the drm-intel-nightly branch from http://cgit.freedesktop.org/drm-intel?
Comment 2 Chris Bainbridge 2015-06-09 21:36:15 UTC
The problem is that these bugs are rare and difficult to reproduce. I just had a similar/same error that turned off only one display, but it occurred after 22 days of uptime:

[1889327.745544] [drm:intel_set_cpu_fifo_underrun_reporting] *ERROR* uncleared fifo underrun on pipe B
[1889327.745556] [drm:intel_cpu_fifo_underrun_irq_handler] *ERROR* CPU pipe B FIFO underrun
[1889327.745583] [drm:intel_set_pch_fifo_underrun_reporting] *ERROR* uncleared pch fifo underrun on pch transcoder B
[1889327.745585] [drm:intel_pch_fifo_underrun_irq_handler] *ERROR* PCH transcoder B FIFO underrun

It could be recovered by `xrandr --off` then `xrandr --auto`. Maybe the log gives some hints, but a bug that only appears once in 22 days would take a long time to track down...
Comment 3 Ander Conselvan de Oliveira 2015-06-11 11:57:06 UTC
(In reply to Chris Bainbridge from comment #2)
> Maybe the log
> gives some hints, but a bug that only appears once in 22 days would take a
> long time to track down...

There are different reasons why a FIFO underrun can happen. Without the extra information from a debug log, there is no clue as to what is the cause, or even what hardware generation you have.

If you are willing to debug this further, add 'drm.debug=0xe log_buf_len=1M' to your kernel command line (note that is different than my previous request), and once you hit the problem again attach the dmesg to this bug report.

Also, please provide the output of "lspci -n -s 00:02.0".
Comment 4 Ander Conselvan de Oliveira 2015-06-11 11:58:29 UTC
(In reply to Ander Conselvan de Oliveira from comment #3)
> Also, please provide the output of "lspci -n -s 00:02.0".

Or I should have read the summary, that says IVB.
Comment 5 Jani Nikula 2015-10-30 13:24:37 UTC
Please try Ville's FIFO underrun elimination series [1] on top of drm-intel-nightly, also available at [2], and report back.

[1] http://mid.gmane.org/1446146763-31821-1-git-send-email-ville.syrjala@linux.intel.com
[2] git://github.com/vsyrjala/linux.git pch_fifo_underrun_fix_4
Comment 6 Jani Nikula 2015-11-12 15:06:50 UTC
(In reply to Jani Nikula from comment #5)
> Please try Ville's FIFO underrun elimination series [1] on top of
> drm-intel-nightly, also available at [2], and report back.
> 
> [1]
> http://mid.gmane.org/1446146763-31821-1-git-send-email-ville.syrjala@linux.
> intel.com
> [2] git://github.com/vsyrjala/linux.git pch_fifo_underrun_fix_4

The series has been merged to drm-intel-nightly. I'm feeling optimistic that it fixes the issues seen here. Fingers crossed, closing. Please do reopen if the problem persists with current drm-intel-nightly. Thanks.
Comment 7 Vladimir Zapolskiy 2015-12-01 08:19:11 UTC
Hi Jari,

> The series has been merged to drm-intel-nightly. I'm feeling optimistic that it fixes the issues seen here.

I observe the same problem as one reported with the LTS v4.1.y. Do you intend to send the fixes to linux-stable?

FWIW this is my environment:
* stable LTS v4.1.13,
* Dell Latitude E6420,
* monitor is Dell U2410 connected to DP-3 port.
Comment 8 Jani Nikula 2015-12-01 08:30:40 UTC
(In reply to Vladimir Zapolskiy from comment #7)
> I observe the same problem as one reported with the LTS v4.1.y. Do you
> intend to send the fixes to linux-stable?

Sorry, it's too big for stable.


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.