Bug 109248 - [WHL] FIFO underruns on a hybrid machine but only while on "performance" (dGPU) mode
Summary: [WHL] FIFO underruns on a hybrid machine but only while on "performance" (dGP...
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Intel (show other bugs)
Version: XOrg git
Hardware: Other All
: medium normal
Assignee: Intel GFX Bugs mailing list
QA Contact: Intel GFX Bugs mailing list
Whiteboard: Triaged
Depends on:
Reported: 2019-01-08 14:17 UTC by Timo Aaltonen
Modified: 2019-03-08 06:42 UTC (History)
5 users (show)

See Also:
i915 platform: GLK
i915 features:


Description Timo Aaltonen 2019-01-08 14:17:25 UTC

Dell Inspiron 7580 hybrid laptop has issues with external monitors when on "performance" (dGPU) mode; the external screen will start blinking and dmesg has lots of: 

[492.008927] [drm:intel_cpu_fifo_underrun_irq_handler [i915]] *ERROR* CPU pipe A FIFO underrun
[492.009818] [drm:intel_cpu_fifo_underrun_irq_handler [i915]] *ERROR* CPU pipe B FIFO underrun

I don't have full logs right now, but at least 4.20 is still affected. Everything newer would need a patched nvidia dkms and that hasn't been tried yet..

when it's running on iGPU everything is fine AIUI
Comment 1 Ethan Hsieh 2019-01-09 07:04:52 UTC
The issue happens to WHL (Whiskey Lake)
$ lspci
00:02:0 VG compatible controller [0300]: Intel Corporation Device [8086:3ea0]
Comment 2 Cooper Chiou 2019-01-10 02:09:18 UTC

Could you disable NV modeset to reproduce issue again and dump i915 log. Thanks,
Comment 3 emily.chien 2019-01-11 02:48:48 UTC
(In reply to Cooper Chiou from comment #2)
> Hi,
> Could you disable NV modeset to reproduce issue again and dump i915 log.
> Thanks,

the issue is still reproducible after removing "nvidia-drm.modeset=1" from kernel parameter.

could you check the logs from the dell system shipped to you? Thank you.
Comment 4 Cooper Chiou 2019-01-11 07:21:28 UTC
I just received Bucky N5 device, but I can’t reproduce this external display blinking issue with Dell 2K monitor via DP and Sony FHD monitor via HDMI in NV Performance mode and no any FIFO underrun error either.
Please share more detail reproducing steps and record the symptom video to share.
Comment 5 Ethan Hsieh 2019-01-11 07:27:34 UTC
Hi Cooper

Here is reproducing steps:

1. connect an external monitor via HDMI port
2. switch display mode to mirror mode
3. switch display mode to external only
4. switch display mode to internal only
5. switch display mode to extended mode
6. Go to 2
Comment 6 Lakshmi 2019-02-04 22:40:01 UTC
Also, please try to reproduce the error using drm-tip (https://cgit.freedesktop.org/drm-tip) and kernel parameters drm.debug=0x1e log_buf_len=4M, and if the problem persists attach the full dmesg from boot.
Comment 7 Cooper Chiou 2019-02-18 02:22:36 UTC
Canonical has identified this i915 patch which can't reproduce issue on kernel 4.20 by watermark/ddb fix but it's difficult to apply to kernel 4.15 since lots of commit dependence and conflicts.

commit ff43bc379e16c9195323cb88ac0c9f4d0613d07a (refs/bisect/bad)
Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
Date: Tue Nov 27 18:59:00 2018 +0200

    drm/i915: Move ddb/wm programming into plane update/disable hooks on skl+

    On SKL+ the plane WM/BUF_CFG registers are a proper part of each
    plane's register set. That means accessing them will cancel any
    pending plane update, and we would need a PLANE_SURF register write
    to arm the wm/ddb change as well.
Comment 8 Ville Syrjala 2019-02-22 12:54:08 UTC
I made a preliminary attempt at a backport. It is being tested by Canonical.

git://github.com/vsyrjala/linux.git skl_wm_backport_4.15
Comment 9 Lakshmi 2019-03-07 14:00:35 UTC
Any feedback from testing?
Comment 10 Timo Aaltonen 2019-03-07 14:03:44 UTC
preliminary testing was fine, but wider testing will happen only once it's been merged to the OEM kernel

anyway, this bug can be closed since it's fixed upstream
Comment 11 Lakshmi 2019-03-08 06:42:33 UTC
Thanks for the feedback Timo. Closing this bug.

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.