2017-12-29 21:10:26

by Jiri Kosina

[permalink] [raw]
Subject: Graphics on thinkpad x270 after dock/undock works only for the first time (CPU pipe B FIFO underrun)

When I dock my thinkpad x270 [1] and run xrandr --auto, image correctly
appears on external display.

After undocking and docking again, the image on external display doesn't
appear any more, and this pops up in dmesg

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

After restarting X (no need to reboot), I am able to dock again and get
image on external display.

I don't think this is a regression, I tried a few older kernels up to
something around 4.11, and nothing worked.

In case any more information is needed to debug this, please let me know,
I'll happily provide it.

Thanks,

--
Jiri Kosina
SUSE Labs


2017-12-29 22:06:30

by Jiri Kosina

[permalink] [raw]
Subject: Re: Graphics on thinkpad x270 after dock/undock works only for the first time (CPU pipe B FIFO underrun)

On Fri, 29 Dec 2017, Jiri Kosina wrote:

> When I dock my thinkpad x270 [1] and run xrandr --auto, image correctly
> appears on external display.
>

[1] 00:02.0 VGA compatible controller: Intel Corporation Skylake GT2 [HD Graphics 520] (rev 07)

> After undocking and docking again, the image on external display doesn't
> appear any more, and this pops up in dmesg
>
> [drm:intel_cpu_fifo_underrun_irq_handler [i915]] *ERROR* CPU pipe B FIFO underrun
>
> After restarting X (no need to reboot), I am able to dock again and get
> image on external display.
>
> I don't think this is a regression, I tried a few older kernels up to
> something around 4.11, and nothing worked.

Forgot to mention: I'm observing this on (and up to) 4.15-rc5

Thanks,

--
Jiri Kosina
SUSE Labs

2017-12-30 09:44:37

by Jiri Kosina

[permalink] [raw]
Subject: Re: Graphics on thinkpad x270 after dock/undock works only for the first time (CPU pipe B FIFO underrun)

On Fri, 29 Dec 2017, Jiri Kosina wrote:

> When I dock my thinkpad x270 [1] and run xrandr --auto, image correctly
> appears on external display.
>
> After undocking and docking again, the image on external display doesn't
> appear any more, and this pops up in dmesg
>
> [drm:intel_cpu_fifo_underrun_irq_handler [i915]] *ERROR* CPU pipe B FIFO underrun
>
> After restarting X (no need to reboot), I am able to dock again and get
> image on external display.
>
> I don't think this is a regression, I tried a few older kernels up to
> something around 4.11, and nothing worked.
>
> In case any more information is needed to debug this, please let me know,
> I'll happily provide it.

Seems like disabling RC6 on the kernel command line works this around, and
I can dock / undock several times in a row with the image always coming
up properly on the external display.

On the first undock, the WARN_ONCE() below triggers, so I believe each
undock leaks memory.

[ 38.755084] Failed to release pages: bind_count=1, pages_pin_count=1, pin_global=0
[ 38.755138] WARNING: CPU: 3 PID: 96 at ../drivers/gpu/drm/i915/i915_gem_userptr.c:89 cancel_userptr+0xe5/0xf0 [i915]
[ 38.755140] Modules linked in: ccm fuse af_packet tun ip6table_mangle nf_conntrack_ipv6 nf_defrag_ipv6 ip6table_filter ip6_tables iptable_mangle xt_DSCP xt_tcpudp nf_conntrack_ipv4 nf_defrag_ipv4 xt_conntrack nf_conntrack libcrc32c bnep iptable_filter ip_tables x_tables msr dm_crypt algif_skcipher af_alg uvcvideo videobuf2_vmalloc videobuf2_memops videobuf2_v4l2 videobuf2_core videodev btusb btrtl btbcm btintel bluetooth ecdh_generic snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic snd_soc_skl snd_soc_skl_ipc snd_hda_ext_core snd_soc_sst_dsp snd_soc_sst_ipc snd_soc_acpi snd_soc_core snd_compress snd_pcm_dmaengine arc4 intel_rapl x86_pkg_temp_thermal intel_powerclamp coretemp kvm_intel kvm irqbypass crct10dif_pclmul crc32_pclmul crc32c_intel ghash_clmulni_intel pcbc nls_iso8859_1 nls_cp437
[ 38.755167] vfat fat iwlmvm iTCO_wdt iTCO_vendor_support wmi_bmof intel_wmi_thunderbolt mac80211 snd_hda_intel snd_hda_codec snd_hda_core snd_hwdep snd_pcm snd_timer aesni_intel aes_x86_64 crypto_simd glue_helper cryptd thinkpad_acpi iwlwifi snd e1000e rtsx_pci_ms cfg80211 ptp memstick joydev mei_me soundcore i2c_i801 tpm_crb pps_core shpchp pcspkr intel_pch_thermal wmi thermal rfkill mei battery ac tpm_tis tpm_tis_core tpm acpi_pad rtsx_pci_sdmmc mmc_core xhci_pci serio_raw xhci_hcd i915 video i2c_algo_bit drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops rtsx_pci usbcore button drm sg dm_multipath dm_mod scsi_dh_rdac scsi_dh_emc scsi_dh_alua efivarfs
[ 38.755198] CPU: 3 PID: 96 Comm: kworker/u8:1 Tainted: G U 4.15.0-rc5-1.g9fcc9f1-default #1
[ 38.755199] Hardware name: LENOVO 20K5S22R00/20K5S22R00, BIOS R0IET38W (1.16 ) 05/31/2017
[ 38.755228] Workqueue: i915-userptr-release cancel_userptr [i915]
[ 38.755245] RIP: 0010:cancel_userptr+0xe5/0xf0 [i915]
[ 38.755246] RSP: 0018:ffffb92e41073e80 EFLAGS: 00010282
[ 38.755248] RAX: 0000000000000046 RBX: ffff9d0d742a4600 RCX: 0000000000000006
[ 38.755249] RDX: 0000000000000007 RSI: 0000000000000086 RDI: ffff9d0daf58f190
[ 38.755250] RBP: ffff9d0d742a47a8 R08: 0000000000000000 R09: 0000000000000334
[ 38.755251] R10: 0000000000000000 R11: ffffffff992d6aed R12: 0000000000000000
[ 38.755252] R13: 0000000000000000 R14: 0ffff9d0d07c1c70 R15: ffff9d0da3d58540
[ 38.755254] FS: 0000000000000000(0000) GS:ffff9d0daf580000(0000) knlGS:0000000000000000
[ 38.755255] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 38.755256] CR2: 00007ff861a41c38 CR3: 000000017cc09004 CR4: 00000000003606e0
[ 38.755257] Call Trace:
[ 38.755264] process_one_work+0x1de/0x410
[ 38.755267] worker_thread+0x2b/0x3d0
[ 38.755269] ? process_one_work+0x410/0x410
[ 38.755270] kthread+0x111/0x130
[ 38.755272] ? kthread_create_worker_on_cpu+0x50/0x50
[ 38.755275] ret_from_fork+0x24/0x30
[ 38.755277] Code: 92 4f ff ff eb c4 8b 93 c8 01 00 00 8b 8b a4 01 00 00 48 c7 c7 70 25 5e c0 8b b3 9c 01 00 00 c6 05 84 d5 14 00 01 e8 6b f9 b6 d7 <0f> ff eb b7 0f 1f 80 00 00 00 00 0f 1f 44 00 00 41 57 41 56 ba

--
Jiri Kosina
SUSE Labs

2017-12-30 12:54:02

by Jiri Kosina

[permalink] [raw]
Subject: Re: Graphics on thinkpad x270 after dock/undock works only for the first time (CPU pipe B FIFO underrun)

On Sat, 30 Dec 2017, Jiri Kosina wrote:

> Seems like disabling RC6 on the kernel command line works this around, and
> I can dock / undock several times in a row with the image always coming
> up properly on the external display.
>
> On the first undock, the WARN_ONCE() below triggers, so I believe each
> undock leaks memory.
>
> [ 38.755084] Failed to release pages: bind_count=1, pages_pin_count=1, pin_global=0
> [ 38.755138] WARNING: CPU: 3 PID: 96 at ../drivers/gpu/drm/i915/i915_gem_userptr.c:89 cancel_userptr+0xe5/0xf0 [i915]

OK, I am seeing this warning with current Linus' tree (5aa90a845) even
without any attempt to dock/undock, so it's probably unrelated to external
outputs and it only by coincidence appeared originally at the same time I
docked the machine.

So there are two separate issues on this machine with latest kernel
(neither of them probably being regression):

- I have to disable i915 RC6 at the kernel cmdline, otherwise external
(dock) display gets output only randomly (seems like always only on
first dock)

- the warning, which triggers at not really deterministic time after boot,
but usually rather quickly

--
Jiri Kosina
SUSE Labs

2018-01-02 19:21:08

by Rodrigo Vivi

[permalink] [raw]
Subject: Re: [Intel-gfx] Graphics on thinkpad x270 after dock/undock works only for the first time (CPU pipe B FIFO underrun)

On Sat, Dec 30, 2017 at 12:53:58PM +0000, Jiri Kosina wrote:
> On Sat, 30 Dec 2017, Jiri Kosina wrote:
>
> > Seems like disabling RC6 on the kernel command line works this around, and
> > I can dock / undock several times in a row with the image always coming
> > up properly on the external display.
> >
> > On the first undock, the WARN_ONCE() below triggers, so I believe each
> > undock leaks memory.
> >
> > [ 38.755084] Failed to release pages: bind_count=1, pages_pin_count=1, pin_global=0
> > [ 38.755138] WARNING: CPU: 3 PID: 96 at ../drivers/gpu/drm/i915/i915_gem_userptr.c:89 cancel_userptr+0xe5/0xf0 [i915]
>
> OK, I am seeing this warning with current Linus' tree (5aa90a845) even
> without any attempt to dock/undock, so it's probably unrelated to external
> outputs and it only by coincidence appeared originally at the same time I
> docked the machine.
>
> So there are two separate issues on this machine with latest kernel
> (neither of them probably being regression):
>
> - I have to disable i915 RC6 at the kernel cmdline, otherwise external
> (dock) display gets output only randomly (seems like always only on
> first dock)

Joonas, Chris, time to bring rc6_enable back on next-fixes before we
remove this support entirely?

>
> - the warning, which triggers at not really deterministic time after boot,
> but usually rather quickly

Jiri, could you please report these issues separately on bugs.freedesktop.org?
Are them regressions? Possible bisect?
Please attach the dmesg booting with drm.debug=0x1e

>
> --
> Jiri Kosina
> SUSE Labs
>
> _______________________________________________
> Intel-gfx mailing list
> [email protected]
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx

2018-01-02 19:35:37

by Chris Wilson

[permalink] [raw]
Subject: Re: [Intel-gfx] Graphics on thinkpad x270 after dock/undock works only for the first time (CPU pipe B FIFO underrun)

Quoting Rodrigo Vivi (2018-01-02 19:21:08)
> On Sat, Dec 30, 2017 at 12:53:58PM +0000, Jiri Kosina wrote:
> > On Sat, 30 Dec 2017, Jiri Kosina wrote:
> >
> > > Seems like disabling RC6 on the kernel command line works this around, and
> > > I can dock / undock several times in a row with the image always coming
> > > up properly on the external display.
> > >
> > > On the first undock, the WARN_ONCE() below triggers, so I believe each
> > > undock leaks memory.
> > >
> > > [ 38.755084] Failed to release pages: bind_count=1, pages_pin_count=1, pin_global=0
> > > [ 38.755138] WARNING: CPU: 3 PID: 96 at ../drivers/gpu/drm/i915/i915_gem_userptr.c:89 cancel_userptr+0xe5/0xf0 [i915]

Not a leak, just a warning the shadow pte are stale due to someone
pinning a (gfx) vma.

> > OK, I am seeing this warning with current Linus' tree (5aa90a845) even
> > without any attempt to dock/undock, so it's probably unrelated to external
> > outputs and it only by coincidence appeared originally at the same time I
> > docked the machine.
> >
> > So there are two separate issues on this machine with latest kernel
> > (neither of them probably being regression):
> >
> > - I have to disable i915 RC6 at the kernel cmdline, otherwise external
> > (dock) display gets output only randomly (seems like always only on
> > first dock)
>
> Joonas, Chris, time to bring rc6_enable back on next-fixes before we
> remove this support entirely?

No. It's precisely because of this mistake (thinking that rc6 has
anything to do with the issue when it's the consequential shotgun
disabling of rpm) that the modparam is not coming back.
-Chris