Bug 21732

Summary: [drm:i915_gem_object_bind_to_gtt] *ERROR* Attempting to bind a purgeable object
Product: Drivers Reporter: Georgi Hristozov (hristozov)
Component: Video(DRI - Intel)Assignee: drivers_video-dri-intel (drivers_video-dri-intel)
Status: RESOLVED INVALID    
Severity: normal CC: chris
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 2.6.37-rc1 Subsystem:
Regression: Yes Bisected commit-id:
Attachments: My kernel config

Description Georgi Hristozov 2010-11-02 08:01:56 UTC
Created attachment 35832 [details]
My kernel config

Hi,

The screen on my laptop randomly turns blank. It happened a few times while using VLC. I'm not able to switch to tty and I have to reboot the machine. The error message is:

[22971.022943] [drm:i915_gem_object_bind_to_gtt] *ERROR* Attempting to bind a purgeable object
[22972.733431] [drm:intel_panel_get_max_backlight] *ERROR* fixme: max PWM is zero.
[22973.900121] chrome[28659]: segfault at 20a24948d72 ip 0000000001ddf097 sp 00007f63758af960 error 4 in chrome[400000+2201000]

Note that chrome segfaults just after the drm error.

I'm constantly upgrading my kernel from the git tree and the problem happened in the last 2-3 days, so it seems that the regression is newly introduced. Bug 21442 may be related, although it appeared a few days earlier and can be avoided by enabling CONFIG_DRM_I915_KMS.

The system is a Toshiba Satellite laptop and I pass "ro root=803
resume=/dev/sda3 resume_offset=3215360" to the kernel.

00:00.0 Host bridge: Intel Corporation Mobile PM965/GM965/GL960 Memory
Controller Hub (rev 0c)
00:02.0 VGA compatible controller: Intel Corporation Mobile GM965/GL960
Integrated Graphics Controller (rev 0c)
00:02.1 Display controller: Intel Corporation Mobile GM965/GL960 Integrated
Graphics Controller (rev 0c)
00:1a.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI
Controller #4 (rev 03)
00:1a.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI
Controller #5 (rev 03)
00:1a.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI
Controller #2 (rev 03)
00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio
Controller (rev 03)
00:1c.0 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 1
(rev 03)
00:1c.1 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 2
(rev 03)
00:1c.2 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 3
(rev 03)
00:1c.3 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 4
(rev 03)
00:1c.4 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 5
(rev 03)
00:1d.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI
Controller #1 (rev 03)
00:1d.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI
Controller #2 (rev 03)
00:1d.2 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI
Controller #3 (rev 03)
00:1d.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI
Controller #1 (rev 03)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev f3)
00:1f.0 ISA bridge: Intel Corporation 82801HEM (ICH8M) LPC Interface Controller
(rev 03)
00:1f.1 IDE interface: Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E) IDE
Controller (rev 03)
00:1f.2 SATA controller: Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E) SATA
AHCI Controller (rev 03)
00:1f.3 SMBus: Intel Corporation 82801H (ICH8 Family) SMBus Controller (rev 03)
04:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8101E/RTL8102E
PCI Express Fast Ethernet controller (rev 01)
05:00.0 Network controller: Intel Corporation PRO/Wireless 3945ABG [Golan]
Network Connection (rev 02)
0c:04.0 CardBus bridge: Texas Instruments PCIxx12 Cardbus Controller
0c:04.1 FireWire (IEEE 1394): Texas Instruments PCIxx12 OHCI Compliant IEEE
1394 Host Controller
0c:04.2 Mass storage controller: Texas Instruments 5-in-1 Multimedia Card
Reader (SD/MMC/MS/MS PRO/xD)
0c:04.3 SD Host controller: Texas Instruments PCIxx12 SDA Standard Compliant SD
Host Controller
Comment 1 Chris Wilson 2010-11-02 09:12:35 UTC
A compound userspace bug. First it attempts to mmap a purged buffer (i.e. one it has told the kernel to discard under memory pressure) and then doesn't check the error return and attempts to dereference an invalid pointer. The bug is most likely an old one in mesa (given chrome likes to statically link crap into its binary).