Bug 105604 - [CI][KBL only] igt@* - dmesg-warn - *ERROR* CPU pipe [A|B] FIFO underrun
Summary: [CI][KBL only] igt@* - dmesg-warn - *ERROR* CPU pipe [A|B] FIFO underrun
Status: NEW
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Intel (show other bugs)
Version: DRI git
Hardware: Other All
: high normal
Assignee: Mun, Gwan-gyeong
QA Contact: Intel GFX Bugs mailing list
URL:
Whiteboard: ReadyForDev
Keywords:
Depends on:
Blocks: 105980
  Show dependency treegraph
 
Reported: 2018-03-19 14:26 UTC by Marta Löfstedt
Modified: 2019-08-27 13:20 UTC (History)
2 users (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Marta Löfstedt 2018-03-19 14:26:13 UTC
This bug is intended for KBL FIFO underruns.

https://intel-gfx-ci.01.org/tree/drm-tip/drmtip_4/fi-kbl-7500u/igt@kms_cursor_legacy@cursora-vs-flipa-toggle.html

[   43.184721] [drm:intel_cpu_fifo_underrun_irq_handler [i915]] *ERROR* CPU pipe A FIFO underrun
[   43.185236] [drm:intel_cpu_fifo_underrun_irq_handler [i915]] *ERROR* CPU pipe B FIFO underrun
Comment 1 Marta Löfstedt 2018-03-21 09:45:23 UTC
https://intel-gfx-ci.01.org/tree/drm-tip/drmtip_5/fi-kbl-7500u/igt@gem_mmap_gtt@basic-wc.html

[   43.013962] [drm:intel_cpu_fifo_underrun_irq_handler [i915]] *ERROR* CPU pipe A FIFO underrun
Comment 2 Marta Löfstedt 2018-03-23 10:40:25 UTC
https://intel-gfx-ci.01.org/tree/drm-tip/drmtip_6/fi-kbl-7500u/igt@kms_cursor_legacy@cursorb-vs-flipb-toggle.html

[  135.131495] [drm:intel_cpu_fifo_underrun_irq_handler [i915]] *ERROR* CPU pipe B FIFO underrun
Comment 3 Marta Löfstedt 2018-04-03 12:35:16 UTC
https://intel-gfx-ci.01.org/tree/drm-tip/drmtip_9/fi-kbl-7500u/igt@perf_pmu@semaphore-wait-bcs0.html
	

[  190.129475] [drm:intel_cpu_fifo_underrun_irq_handler [i915]] *ERROR* CPU pipe A FIFO underrun
Comment 5 Marta Löfstedt 2018-04-06 08:20:51 UTC
(In reply to Marta Löfstedt from comment #4)
> https://intel-gfx-ci.01.org/tree/drm-tip/drmtip_12/fi-skl-6770hq/
> igt@gem_exec_schedule@reorder-wide-bsd2.html

Wrong bug
Comment 7 Francesco Balestrieri 2018-06-01 07:49:20 UTC
Still seen
Comment 8 Mun, Gwan-gyeong 2019-01-25 06:58:38 UTC
After investigating the issue, I am suspecting a GEN9 hardware issue.
I figured out enabling FBC on a plane which has a combination of a 180-degree rotation with having a Height that isn't divisible by 4 occasionally causes FIFO underrun.
I tested the issue with igt-gpu-tools. ( multiplane-rotation-cropping-top subtest from kms_rotation_crc).
I tested on Gen9 disaply HWs (both Skylake and Kabylake).
when I added the patch code which make avoiding the issue case, I could always passed the test case.
https://gitlab.freedesktop.org/elongbug/drm-tip/tree/gen9_fbc_underrun01
https://gitlab.freedesktop.org/elongbug/drm-tip/commit/a3969a959230153a53088a0abbf354c4c233af20

I asked a HW guy this issue to clarify.
And for now I am waiting the reply.
Comment 9 Mun, Gwan-gyeong 2019-01-29 12:25:54 UTC
I received a guide of the issue from HW Team .
He guided me that we should disable FBC when 180 rotation and non-divisible by 4 plane size scenarios on GEN9

Issue case:
 Enabling FBC on a plane which has a combination of a 180-degree rotation with having a Height that isn't divisible by 4  occasionally causes FIFO underrun.

Solution: 
 Disabling FBC on a plane which has a combination of a 180-degree rotation with having a Height that isn't divisible by 4 to GEN9
Comment 10 Mun, Gwan-gyeong 2019-01-29 12:58:39 UTC
https://patchwork.freedesktop.org/patch/281708/
Comment 11 Jose Roberto de Souza 2019-01-30 16:42:32 UTC
Hi Gwan-gyeong

HW will add or already have added this information to BSpec?
Comment 12 Marijan 2019-08-27 13:11:50 UTC
Running on Fedora 30, Kernel 5.2.9, HP Elitebook 840 G5, Using 2 external monitors on DP (tried also 1xVGA + 1DP, same issue).
Same issue on Ubuntu 18.04.

Result - PC Hangs, hw reboot required.

Here are the logs of last moments:

Jul 31 15:13:03 localhost.localdomain kernel: [drm:intel_cpu_fifo_underrun_irq_handler [i915]] *ERROR* CPU pipe B FIFO underrun
Jul 31 15:13:03 localhost.localdomain kernel: [drm:intel_mst_enable_dp [i915]] *ERROR* Timed out waiting for ACT sent
Jul 31 15:13:03 localhost.localdomain kernel: [drm:pipe_config_err [i915]] *ERROR* mismatch in pixel_rate (expected 148500, found 296999)
Jul 31 15:13:03 localhost.localdomain kernel: [drm:pipe_config_err [i915]] *ERROR* mismatch in shared_dpll (expected 000000001275aaee, found 000000004520f932)
Jul 31 15:13:03 localhost.localdomain kernel: [drm:pipe_config_err [i915]] *ERROR* mismatch in dpll_hw_state.ctrl1 (expected 0x00000003, found 0x00000001)
Jul 31 15:13:03 localhost.localdomain kernel: [drm:pipe_config_err [i915]] *ERROR* mismatch in base.adjusted_mode.crtc_clock (expected 148500, found 296999)
Jul 31 15:13:03 localhost.localdomain kernel: [drm:pipe_config_err [i915]] *ERROR* mismatch in port_clock (expected 270000, found 540000)
[drm:intel_ddi_prepare_link_retrain [i915]] *ERROR* Timeout waiting for DDI BUF C idle bit
Jul 31 15:13:18 localhost.localdomain kernel: [drm:intel_ddi_prepare_link_retrain [i915]] *ERROR* Timeout waiting for DDI BUF C idle bit
[drm:drm_atomic_helper_wait_for_flip_done [drm_kms_helper]] *ERROR* [CRTC:83:pipe C] flip_done timed out

Error appear/disappear more frequently after screen lock depending on kernel version.
Comment 13 Marijan 2019-08-27 13:20:48 UTC
Related to previus post - driver configuration.

alpha_support   N
disable_display N
disable_power_well      1
dmc_firmware_path       (null)
edp_vswing      0
enable_dc       -1
enable_dpcd_backlight   N
enable_dp_mst   Y
enable_fbc      1
enable_guc      2
enable_gvt      N
enable_hangcheck        Y
enable_ips      1
enable_psr      0
error_capture   Y
fastboot        -1
force_reset_modeset_test        N
guc_firmware_path       (null)
guc_log_level   1
huc_firmware_path       (null)
invert_brightness       0
load_detect_test        N
lvds_channel_mode       0
mmio_debug      1
modeset -1
nuclear_pageflip        N
panel_use_ssc   -1
prefault_disable        N
reset   2
vbt_firmware    (null)
vbt_sdvo_panel_type     -1
verbose_state_checks    Y


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.