Re: [BISECTED REGRESSION in 3.19-rc1] [drm/i915] WARNING: drivers/gpu/drm/drm_irq.c:1077 drm_wait_one_vblank

Paul Bolle
2015-02-04T12:32:12Z

Andrey Skvortsov schreef op zo 01-02-2015 om 00:16 [+0300]:
> this warning exist in v3.19-rc6 and does not in v3.18. Bisection
> points to the commit 51e31d49c890552 "drm/i915: Use generic vblank wait".
> I have two machines with integrated Intel graphics and the problem
> happens only on the old one with GM965 chipset and X3100 integrated graphics.

I see this too, since v3.19-rc1, on an (outdated) ThinkPad X41.

> backtrace information:
>
> [ 31.780813] WARNING: CPU: 0 PID: 718 at drivers/gpu/drm/drm_irq.c:1077 drm_wait_one_vblank+0x33/0x141 [drm]()

But it also prints
vblank not available on crtc 0, ret=-22

after the WARNING line, on that machine.

> [ 31.780815] Modules linked in: ecb(E) i915(E+) snd_hda_codec_generic(E) coretemp(E) btusb(E) kvm_intel(E) snd_hda_intel(E) snd_hda_controller(E) kvm(E) drm_kms_helper(E) snd_hda_code
> c(E) snd_pcsp(E) bluetooth(E) snd_hwdep(E) drm(E) lpc_ich(E) evdev(E) mfd_core(E) snd_pcm(E) snd_timer(E) snd(E) psmouse(E) serio_raw(E) i2c_algo_bit(E) i2c_i801(E) rfkill(E) soundcore(
> E) battery(E) button(E) video(E) ac(E) i2ccore(E) acpi_cpufreq(E) processor(E) fuse(E) parport_pc(E) ppdev(E) lp(E) parport(E) autofs4(E) ext4(E) crc16(E) jbd2(E) mbcache(E) sd_mod(E) a
> ta_generic(E) ahci(E) libahci(E) sdhci_pci(E) sdhci(E) firewire_ohci(E) b44(E) mii(E) ssb(E) ata_piix(E) firewire_core(E) crc_itu_t(E) mmc_core(E) libphy(E) libata(E) scsi_mod(E) xhci_h
> cd(E) ehci_pci(E) uhci_hcd(E) ehci_hcd(E) usbcore(E) usb_common(E) thermal(E)
> [ 31.780862] thermal_sys(E)
> [ 31.780866] CPU: 0 PID: 718 Comm: kworker/u4:3 Tainted: G E 3.17.0-rc5-150116--00578-g51e31d4 #16
> [ 31.780868] Hardware name: Dell Inc. Vostro 1500 /0NX907, BIOS A06 04/21/2008
> [ 31.780873] Workqueue: events_unbound async_run_entry_fn
> [ 31.780875] 0000000000000000 ffffffffa0544b9d ffffffff813d4e81 0000000000000000
> [ 31.780879] ffffffff8103dec3 ffff8800d84e0068 ffffffffa0521c73 0000000000070008
> [ 31.780882] ffff8800d84e0000 ffff8801973e0800 0000000000000000 0000000000006014
> [ 31.780886] Call Trace:
> [ 31.780890] [<ffffffff813d4e81>] ? dump_stack+0x4a/0x75
> [ 31.780894] [<ffffffff8103dec3>] ? warn_slowpath_common+0x7e/0x97
> [ 31.781050] [<ffffffffa0521c73>] ? drm_wait_one_vblank+0x33/0x141 [drm]
> [ 31.781078] [<ffffffffa0521c73>] ? drm_wait_one_vblank+0x33/0x141 [drm]
> [ 31.781122] [<ffffffffa096b13e>] ? intel_enable_tv+0x22/0x58 [i915]
> [ 31.781153] [<ffffffffa0940f3e>] ? i9xx_crtc_enable+0x33b/0x397 [i915]
> [ 31.781184] [<ffffffffa093f875>] ? __intel_set_mode+0x1160/0x1209 [i915]
> [ 31.781216] [<ffffffffa094590a>] ? intel_set_mode+0x12/0x2c [i915]
> [ 31.781247] [<ffffffffa0945d5a>] ? intel_get_load_detect_pipe+0x367/0x408 [i915]
> [ 31.781281] [<ffffffffa096bbc6>] ? intel_tv_detect+0x103/0x444 [i915]
> [ 31.781289] [<ffffffffa0729ee3>] ? drm_helper_probe_single_connector_modes_merge_bits+0xc0/0x327 [drm_kms_helper]
> [ 31.781296] [<ffffffffa072e946>] ? drm_fb_helper_probe_connector_modes+0x3d/0x51 [drm_kms_helper]
> [ 31.781303] [<ffffffffa0730026>] ? drm_fb_helper_initial_config+0x3d/0x303 [drm_kms_helper]
> [ 31.781306] [<ffffffff81055f62>] ? async_run_entry_fn+0x5a/0x110
> [ 31.781310] [<ffffffff8105019d>] ? process_one_work+0x194/0x292
> [ 31.781313] [<ffffffff810504fb>] ? worker_thread+0x236/0x298
> [ 31.781316] [<ffffffff810502c5>] ? process_scheduled_works+0x2a/0x2a
> [ 31.781319] [<ffffffff8105401e>] ? kthread+0x9e/0xa6
> [ 31.781322] [<ffffffff81053f80>] ? kthread_freezable_should_stop+0x36/0x36
> [ 31.781326] [<ffffffff813d9aac>] ? ret_from_fork+0x7c/0xb0
> [ 31.781329] [<ffffffff81053f80>] ? kthread_freezable_should_stop+0x36/0x36
> [ 31.782726] ---[ end trace e2b78017f1a10054 ]---
>
>
> lspci:
>
> 00:02.0 VGA compatible controller [0300]: Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller (primary) [8086:2a02] (rev 0c)
> 00:02.1 Display controller [0380]: Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller (secondary) [8086:2a03] (rev 0c)

A naive revert, on top of v3.19-rc7, of commit 51e31d49c890552
("drm/i915: Use generic vblank wait") clashes with later changes. It
seems intel_wait_for_vblank() became an one line inline function in a
later commit.

Anyhow, is a fix for this queued somewhere?

Thanks,

Paul Bolle