Bug 51265 - [830M regression] Assertion of the intel/dri kernel module on an IBM R31 laptop
Summary: [830M regression] Assertion of the intel/dri kernel module on an IBM R31 laptop
Status: CLOSED FIXED
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Intel (show other bugs)
Version: unspecified
Hardware: x86 (IA32) Linux (All)
: medium normal
Assignee: Daniel Vetter
QA Contact: Intel GFX Bugs mailing list
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-06-20 10:53 UTC by thor
Modified: 2017-07-24 23:01 UTC (History)
5 users (show)

See Also:
i915 platform:
i915 features:


Attachments
dmesg output (154.70 KB, text/plain)
2012-08-22 16:02 UTC, thor
no flags Details
dmesg output (154.70 KB, text/plain)
2012-08-23 07:35 UTC, thor
no flags Details
dmesg output (709.49 KB, text/plain)
2012-08-23 09:32 UTC, thor
no flags Details

Description thor 2012-06-20 10:53:53 UTC
When running the current (1.7.2.5?) version of the intel drm kernel module on an old IBM R31 Thinkpad, the following kernel failure is generated:

Kernel failure message 1:
------------[ cut here ]------------
WARNING: at drivers/gpu/drm/i915/intel_display.c:963 assert_plane+0x70/0x80 [i915]()
Hardware name: 2656M1G
plane B assertion failure (expected off, current on)
Modules linked in: mperf cpufreq_userspace cpufreq_powersave cpufreq_stats cpufreq_conservative fuse loop aes_generic airo_cs airo snd_intel8x0 snd_ac97_codec i915 ac97_bus pcmcia snd_pcm drm_kms_helper sg drm snd_seq yenta_socket e100 mii sr_mod snd_timer pcmcia_rsrc psmouse pcmcia_core cdrom serio_raw pcspkr battery processor snd_seq_device evdev snd shpchp soundcore i2c_i801 ac i2c_algo_bit rng_core i2c_core uhci_hcd pci_hotplug usbcore usb_common button video microcode snd_page_alloc ext3 jbd mbcache sd_mod ata_generic ata_piix libata scsi_mod thermal thermal_sys hwmon
Pid: 985, comm: Xorg Tainted: G        W    3.4.0 #25
Call Trace:
 [<c102a3bd>] warn_slowpath_common+0x6d/0xa0
 [<f8ca45c0>] ? assert_plane+0x70/0x80 [i915]
 [<f8ca45c0>] ? assert_plane+0x70/0x80 [i915]
 [<c102a46e>] warn_slowpath_fmt+0x2e/0x30
 [<f8ca45c0>] assert_plane+0x70/0x80 [i915]
 [<f8caa06b>] intel_crtc_disable+0x5b/0xa0 [i915]
 [<f8aa82ef>] drm_helper_disable_unused_functions+0xef/0x140 [drm_kms_helper]
 [<f8aa9c86>] drm_crtc_helper_set_config+0x856/0x9b0 [drm_kms_helper]
 [<f8a1c39d>] drm_mode_setcrtc+0x19d/0x530 [drm]
 [<c1045760>] ? wake_up_bit+0x60/0x60
 [<f8a0de32>] drm_ioctl+0x282/0x550 [drm]
 [<f8a1c200>] ? drm_mode_attachmode_ioctl+0x100/0x100 [drm]
 [<c10c5921>] ? mmap_region+0x1e1/0x4b0
 [<f8a0dbb0>] ? drm_version+0x90/0x90 [drm]
 [<c10e8eae>] do_vfs_ioctl+0x7e/0x570
 [<c10dae15>] ? vfs_read+0xf5/0x140
 [<c114bd22>] ? tomoyo_file_ioctl+0x12/0x20
 [<c10e940f>] sys_ioctl+0x6f/0x80
 [<c1302d50>] sysenter_do_call+0x12/0x26
---[ end trace e7382c815524a93f ]---

As found in the description, this is (early generation) intel 830M chipset. The problem is related to the bios setting: When this warning was recorded, the bios setting was to display the boot screen on [CRT] even though no CRT was connected to the VGA output. When switching back to [LCD], the kernel warning vanishes. This is likely because the bios activates pipe B for the VGA output, though possibly never disables it again when switching back to the LCD when load detection shows that nothing is detected to this output.

The warning is at this time irritating, though not fatal.

If requested, a more complete boot log may be provided (as soon as I have again access to the machine). Note that this is one of the early chipset revisions which tend to hang the GPU. The intel Xorg driver correctly enables shadow buffering to work around this.
Comment 1 Chris Wilson 2012-06-21 03:06:59 UTC
Can you attach the full drm.debug=6 dmesg upto this assert? During boot we should be sanitizing the registers and mode config leftover by the BIOS so I am curious as to whereabout in the sequence we trigger the assert.
Comment 2 thor 2012-06-22 10:34:38 UTC
This seems to be a Heisenbug. I tried very hard today to reproduce it, including switching back to the VGA frame buffer, enabling the "CRT" output in the bios, though without much luck. )-:
Comment 3 Daniel Vetter 2012-07-04 09:40:15 UTC
Can you please try the modeset-rework-pipea-fix git branch from my personal repo at http://cgit.freedesktop.org/~danvet/drm

Please boot with drm.debug=0xe and also attach the full dmesg.
Comment 4 thor 2012-07-18 17:36:32 UTC
Am 04.07.2012 18:40, schrieb bugzilla-daemon@freedesktop.org:
> https://bugs.freedesktop.org/show_bug.cgi?id=51265
>
> Daniel Vetter<daniel@ffwll.ch>  changed:
>
>             What    |Removed                     |Added
> ----------------------------------------------------------------------------
>               Status|NEW                         |NEEDINFO
>
> --- Comment #3 from Daniel Vetter<daniel@ffwll.ch>  2012-07-04 09:40:15 PDT ---
> Can you please try the modeset-rework-pipea-fix git branch from my personal
> repo at http://cgit.freedesktop.org/~danvet/drm
>
> Please boot with drm.debug=0xe and also attach the full dmesg.
>

Thanks, I will, though I probably won't have the time this week. Please 
have some patience - sorry.

Greetings,
	Thomas
Comment 5 Daniel Vetter 2012-07-18 19:24:00 UTC
Please try the plain modeset-rework branch from the same git repo. The pipe A quirk is now integrated, and that branch contains many more fixes.
Comment 6 Daniel Vetter 2012-08-22 10:38:33 UTC
Ping about the test-result for the modeset-rework ...
Comment 7 thor 2012-08-22 16:02:01 UTC
Created attachment 65966 [details]
dmesg output
Comment 8 thor 2012-08-22 16:03:34 UTC
Unfortunately, not any better - just worse.

*) On the first start, panning did not work, and I got a message that the screen size was not adjusted,

*) on the second start I got the attached kernel warning (see dmesg output),

*) starting xvideo more than once still crashes the system.

Sorry for the bad news.
Comment 9 Daniel Vetter 2012-08-22 16:39:57 UTC
Can you please boot with drm.debug=0xe added to your kernel cmdline, reproduce the WARN on the modeset-rework branch and then attach the full dmesg (please make sure it's not cut off at the beginning)?
Comment 10 thor 2012-08-23 07:35:51 UTC
Created attachment 66004 [details]
dmesg output
Comment 11 thor 2012-08-23 07:38:24 UTC
Unfortunately, this specific bug is not always reproducable, so I cannot just go, reboot and start from scratch. The kernel output as attached I all I can offer. It should be complete, though.

The important part seems to be the following:

[   22.572217] ------------[ cut here ]------------
[   22.572286] WARNING: at drivers/gpu/drm/i915/intel_display.c:3567 intel_connector_check_state+0xe6/0x1d0 [i915]()
[   22.572290] Hardware name: 2656M1G
[   22.572293] encoder active on the wrong pipe
[   22.572296] Modules linked in: fuse loop snd_intel8x0 i915 snd_ac97_codec ac97_bus e100 snd_pcm drm_kms_helper snd_seq sg drm mii i2c_i801 pcmcia snd_timer snd_seq_device uhci_hcd snd sr_mod evdev cdrom microcode psmouse yenta_socket pcmcia_rsrc soundcore usbcore snd_page_alloc pcspkr serio_raw i2c_algo_bit i2c_core pcmcia_core shpchp pci_hotplug rng_core usb_common processor video button battery ac ext3 jbd mbcache sd_mod ata_generic ata_piix libata scsi_mod thermal thermal_sys hwmon
[   22.572375] Pid: 926, comm: Xorg Tainted: G        W    3.6.0-rc2+ #2
[   22.572378] Call Trace:
[   22.572397]  [<c102ebdd>] warn_slowpath_common+0x6d/0xa0
[   22.572417]  [<f8c70536>] ? intel_connector_check_state+0xe6/0x1d0 [i915]
[   22.572435]  [<f8c70536>] ? intel_connector_check_state+0xe6/0x1d0 [i915]
[   22.572443]  [<c102ec8e>] warn_slowpath_fmt+0x2e/0x30
[   22.572461]  [<f8c70536>] intel_connector_check_state+0xe6/0x1d0 [i915]
[   22.572482]  [<f8c70657>] intel_modeset_check_state+0x37/0x440 [i915]
[   22.572509]  [<f8a0e659>] ? drm_mode_destroy+0x19/0x20 [drm]
[   22.572529]  [<f8c765c9>] intel_set_mode+0x789/0xa80 [i915]
[   22.572554]  [<f8c7a927>] intel_get_load_detect_pipe+0x2a7/0x3a0 [i915]
[   22.572566]  [<c118295b>] ? string+0x3b/0xe0
[   22.572585]  [<f8c7d072>] ? intel_crt_detect_ddc+0xa2/0xc0 [i915]
[   22.572604]  [<f8c7d072>] ? intel_crt_detect_ddc+0xa2/0xc0 [i915]
[   22.572623]  [<f8c7d355>] intel_crt_detect+0x2c5/0x750 [i915]
[   22.572631]  [<c11840ca>] ? snprintf+0x1a/0x20
[   22.572641]  [<f8acb258>] drm_helper_probe_single_connector_modes+0x248/0x310 [drm_kms_helper]
[   22.572656]  [<f8a10cc7>] drm_mode_getconnector+0x2c7/0x320 [drm]
[   22.572670]  [<c117bfb8>] ? idr_get_new_above+0x8/0x40
[   22.572682]  [<f8a02de2>] drm_ioctl+0x282/0x550 [drm]
[   22.572696]  [<f8a10a00>] ? drm_mode_getencoder+0xb0/0xb0 [drm]
[   22.572708]  [<f8a02b60>] ? drm_version+0x90/0x90 [drm]
[   22.572717]  [<c10f309e>] do_vfs_ioctl+0x7e/0x570
[   22.572725]  [<c10e440c>] ? vfs_write+0xfc/0x140
[   22.572737]  [<c11575d2>] ? tomoyo_file_ioctl+0x12/0x20
[   22.572743]  [<c10f35ff>] sys_ioctl+0x6f/0x80
[   22.572757]  [<c1316450>] sysenter_do_call+0x12/0x26
[   22.572761] ---[ end trace f75b507d5217cfb3 ]---

I'll try to get a bit more out of it, but as said, I cannot really promise much.
Comment 12 Daniel Vetter 2012-08-23 08:46:41 UTC
Np, I have a few other i830M reporters around and they seem to be able to reproduced much easier. I'll try to cook up a patch, but need to analyze the failure case a bit first.
Comment 13 thor 2012-08-23 09:28:22 UTC
Unfortunately, not any better - just worse.

*) On the first start, panning did not work, and I got a message that the screen size was not adjusted,

*) on the second start I got the attached kernel warning (see dmesg output),

*) starting xvideo more than once still crashes the system.

Sorry for the bad news.
Comment 14 thor 2012-08-23 09:32:26 UTC
Created attachment 66015 [details]
dmesg output

Now with drm.debug=0x0e
Comment 15 thor 2012-08-23 09:36:06 UTC
The above debug output contains now all the requested information. I also found a way how to reproduce it (if it helps others):

*) boot without the VGA output being connected,
*) enable panning
*) press Fn-F7 to activate the VGA output on the R31:

The screen will start to flicker unbearably, possibly trying to detect a monitor on the output that isn't there.

*) press Fn-F7 again - more flickering, and the wrong resolution on what is visible (sometimes)

*) press Fn-F7 again - you now get a stable picture, but without the panning, and a message that the screen dimensions are not supported.

dmesg output is above.
Comment 16 Daniel Vetter 2012-08-30 13:46:35 UTC
Ok, I've updated the modeset-rework branch with a fix, which hopefully at least squashes one of the WARNs you're seeing. Please test and attach again a dmesg with drm.debug=0xe, thanks.
Comment 17 thor 2012-09-06 13:47:43 UTC
Ok, thanks for the update. I will provide debug output soon. This update is *somewhat* better, but still fails to work reasonable.

*) With gnome, I'm using xrandr to enable panning in the desktop (2048x1536 on a 1024x768 screen). I still get a warning that the monitor does not support this resolution, even though the monitor enables panning.

*) Scrolling in panning does not work correctly - even if you scroll to the edge of the screen, the monitor position does not reflect the scroll position correctly, quite some pixels are missing meaning that the apparent (visible) mouse position does not agree with the real mouse position - IOW, the desktop is unusable. Initially, the position is correct, but as soon as you move the mouse to pan the screen, the scroll position only updates incompletely. By moving the mouse left and right, with some luck, you can get the mouse to agree with the pan position. This did not work in the previous release either. It worked "somehow" in the 3.4.0 driver - in the sense that the screen flickered for some scroll positions. But at least the scrolling was consistent. Panning did work completely with the driver I modified for the 2501 DVO.

*) Enabling the monitor output with the Fn key combination on the R31 starts again a flickering screen as if the driver tries to detect an external monitor over and over again. Pressing the Fn-combo again, I get the monitor in the native resolution with panning disabled. This works better than the previous release.

*) I do not seem to get the kernel warnings anymore.

*) I haven't tried whether xvideo works. Will report back as soon as I can (but probably not before next week).
Comment 18 Daniel Vetter 2012-09-07 10:10:14 UTC
There was still a bug in the plane fixup code, updated patch pushed to the modeset-rework branch. Please test.
Comment 19 thor 2012-09-08 12:00:13 UTC
Panning still does not work with this new revision - the screen flickers when moving the cursor around, and the position is incorrect. When scrolling left and right, the adjustment is incomplete and off by a couple of pixels. When performing an up-down scroll, the left-right scroll position is adjusted correctly (but then up-down will be incorrect again).

Xvideo still crashes after the second invocation, no changes.

I still get warnings that the screen size could not be adjusted through xrandr (no difference from the previous release).

Activating the external output creates a flickering and unusable screen, same as with the previous release. Sharing the outputs deactivates panning on the internal screen but restores it correctly.

Thus, no news, still broken and not usable. Sorry.
Comment 20 Florian Mickler 2012-10-23 21:02:43 UTC
A patch referencing this bug report has been merged in Linux v3.7-rc2:

commit fa55583797d12b10928a1813f3dcf066637caf5e
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Wed Oct 10 23:14:00 2012 +0200

    drm/i915: fixup the plane->pipe fixup code
Comment 21 Chris Wilson 2012-10-23 22:09:31 UTC
A fix for the Xv issue (hang on second invocation) has also landed. Can you please also attach an Xorg.log?
Comment 22 Daniel Vetter 2012-10-24 08:25:58 UTC
(In reply to comment #19)
> Activating the external output creates a flickering and unusable screen,
> same as with the previous release. Sharing the outputs deactivates panning
> on the internal screen but restores it correctly.

Issue with VGA going bonkers should be papered over with:

commit 7f6658ef35a470cd641ea35a1da409c4bc5bae1e
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Sun Oct 21 23:26:29 2012 +0200

    drm/i915: VGA needs to be on pipe A on i830M

which is merged into drm-intel-fixes.
Comment 23 Jesse Barnes 2012-12-12 19:26:23 UTC
presumed fixed, please re-open if not.


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.