Bug#661696: drm/i915: wrong fifo size due to uncareful refactoring which results in an xserver crash at 800x600
Package: linux-2.6
Version: 2.6.32-41
Severity: important
Tags: upstream patch
Hi,
I've encountered a nasty bug in the drm/i915 part of Debian's stable kernel. The code is also present in 2.6.33.20, which is the latest stable upstream release of 2.6.33.y at the time of writing.
During a refactoring of the i915 driver a regression has been introduced (http://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=commit;h=e70236a8d3d0a4c100a0b9f7d394 d9bda9c56aca): For some chipsets the wrong fifo size is determined which results in lot's of pixel errors when starting the xserver and choosing 800x600 as a resolution. If another resolution is used (eg. 1024x768 or 1280x1024), I don't encounter this problem.
I've attached a patch that fixes the problem (no pixel errors anymore) and determines the correct fifo size.
-- Package-specific info:
** Version:
Linux version 2.6.32-5-686 (Debian 2.6.32-41) (ben@decadent.org.uk) (gcc version 4.3.5 (Debian 4.3.5-4) ) #1 SMP Mon Jan 16 16:04:25 UTC 2012
** Kernel log:
[ 1.637921] sd 0:0:0:0: [sda] 8027712 512-byte logical blocks: (4.11 GB/3.82 GiB)
[ 1.638005] sd 0:0:0:0: [sda] Write Protect is off
[ 1.638010] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
[ 1.638045] sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[ 1.638258] sda: sda1 sda2
[ 1.639892] sd 0:0:0:0: [sda] Attached SCSI disk
[ 1.740461] usb 1-1: new full speed USB device using uhci_hcd and address 2
[ 1.744283] kjournald starting. Commit interval 5 seconds
[ 1.744299] EXT3-fs: mounted filesystem with ordered data mode.
[ 1.897098] usb 1-1: New USB device found, idVendor=1a40, idProduct=0201
[ 1.897104] usb 1-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[ 1.897109] usb 1-1: Product: USB 2.0 Hub [MTT]
[ 1.897256] usb 1-1: configuration #1 chosen from 1 choice
[ 1.900120] hub 1-1:1.0: USB hub found
[ 1.902075] hub 1-1:1.0: 7 ports detected
[ 2.006518] udev[254]: starting version 164
[ 2.020066] usb 1-2: new full speed USB device using uhci_hcd and address 3
[ 2.194232] usb 1-2: New USB device found, idVendor=9710, idProduct=7830
[ 2.194239] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 2.194244] usb 1-2: Product: USB-MAC Controller
[ 2.194247] usb 1-2: Manufacturer: Moschip Semiconductor
[ 2.194251] usb 1-2: SerialNumber: 3b00043d
[ 2.194414] usb 1-2: configuration #1 chosen from 1 choice
[ 2.274033] usb 1-1.2: new full speed USB device using uhci_hcd and address 4
[ 2.350298] pci_hotplug: PCI Hot Plug PCI Core version: 0.5
[ 2.388923] input: PC Speaker as /devices/platform/pcspkr/input/input0
[ 2.403022] Marking TSC unstable due to TSC halts in idle
[ 2.405028] processor LNXCPU:00: registered as cooling_device1
[ 2.419214] Switching to clocksource acpi_pm
[ 2.456113] intel_rng: FWH not detected
[ 2.470309] ACPI: AC Adapter [ADP1] (off-line)
[ 2.470506] input: Power Button as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input1
[ 2.470522] ACPI: Power Button [PWRB]
[ 2.470618] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input2
[ 2.470624] ACPI: Power Button [PWRF]
[ 2.488242] i801_smbus 0000:00:1f.3: PCI INT B -> GSI 17 (level, low) -> IRQ 17
[ 2.499895] shpchp: Standard Hot Plug PCI Controller Driver version: 0.4
[ 2.529165] usb 1-1.3: new low speed USB device using uhci_hcd and address 5
[ 2.542981] usb 1-2: applying rev.C fixup
[ 2.549198] usb 1-2: applying rev.C fixup
[ 2.561229] eth1: register 'MOSCHIP usb-ethernet driver' at usb-0000:00:1d.0-2, MOSCHIP 7830/7730 usb-NET adapter, 00:13:3b:00:04:3d
[ 2.561269] usbcore: registered new interface driver MOSCHIP usb-ethernet driver
[ 2.618157] [drm] Initialized drm 1.1.0 20060810
[ 2.714449] i915 0000:00:02.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
[ 2.714459] i915 0000:00:02.0: setting latency timer to 64
[ 2.719367] [drm] set up 3M of stolen space
[ 2.786929] usb 1-1.4: new low speed USB device using uhci_hcd and address 6
[ 2.810044] [drm] initialized overlay support
[ 3.017929] usb 1-1.4: New USB device found, idVendor=046d, idProduct=c312
[ 3.017936] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 3.017941] usb 1-1.4: Product: USB Multimedia Keyboard
[ 3.017945] usb 1-1.4: Manufacturer: LITEON Technology
[ 3.018172] usb 1-1.4: configuration #1 chosen from 1 choice
[ 3.064696] usbcore: registered new interface driver usbserial
[ 3.065060] USB Serial support registered for generic
[ 3.065322] usbcore: registered new interface driver usbserial_generic
[ 3.065325] usbserial: USB Serial Driver core
[ 3.105820] Console: switching to colour frame buffer device 160x64
[ 3.106212] USB Serial support registered for FTDI USB Serial Device
[ 3.120640] fb0: inteldrmfb frame buffer device
[ 3.120643] registered panic notifier
[ 3.131269] usb 1-1.2: FTDI USB Serial Device converter now attached to ttyUSB0
[ 3.131332] usbcore: registered new interface driver ftdi_sio
[ 3.131336] ftdi_sio: v1.5.0:USB FTDI Serial Converters Driver
[ 3.134135] usbcore: registered new interface driver hiddev
[ 3.137738] [drm] Initialized i915 1.6.0 20080730 for 0000:00:02.0 on minor 0
[ 3.137813] Intel ICH 0000:00:1f.5: PCI INT B -> GSI 17 (level, low) -> IRQ 17
[ 3.137849] Intel ICH 0000:00:1f.5: setting latency timer to 64
[ 3.149671] input: LITEON Technology USB Multimedia Keyboard as /devices/pci0000:00/0000:00:1d.0/usb1/1-1/1-1.4/1-1.4:1.0/input/input3
[ 3.149953] generic-usb 0003:046D:C312.0001: input,hidraw0: USB HID v1.10 Keyboard [LITEON Technology USB Multimedia Keyboard] on usb-0000:00:1d.0-1.4/input0
[ 3.150007] usbcore: registered new interface driver usbhid
[ 3.150305] usbhid: v2.6:USB HID core driver
[ 3.460056] intel8x0_measure_ac97_clock: measured 54690 usecs (2635 samples)
[ 3.460062] intel8x0: clocking to 48000
[ 3.765560] Adding 524280k swap on /dev/sda2. Priority:-1 extents:1 across:524280k
[ 3.845241] EXT3 FS on sda1, internal journal
[ 4.165025] ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 4.168163] e100: eth0 NIC Link is Up 100 Mbps Full Duplex
[ 4.168463] ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[ 7.849201] [drm:intel_crtc_mode_set] *ERROR* Couldn't find PLL settings for mode!
[ 7.849209] [drm:drm_crtc_helper_set_config] *ERROR* failed to set mode on crtc ce96d000
[ 14.552037] eth0: no IPv6 routers present
00:1f.5 Multimedia audio controller [0401]: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller [8086:24c5] (rev 02)
Subsystem: Device [414c:4760]
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin B routed to IRQ 17
Region 0: I/O ports at e800 [size=256]
Region 1: I/O ports at e480 [size=64]
Region 2: Memory at ffa7bc00 (32-bit, non-prefetchable) [size=512]
Region 3: Memory at ffa7b800 (32-bit, non-prefetchable) [size=256]
Capabilities: [50] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Kernel driver in use: Intel ICH
01:08.0 Ethernet controller [0200]: Intel Corporation 82801DB PRO/100 VE (CNR) Ethernet Controller [8086:103a] (rev 82)
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 64 (2000ns min, 14000ns max), Cache Line Size: 32 bytes
Interrupt: pin A routed to IRQ 20
Region 0: Memory at ff8ff000 (32-bit, non-prefetchable) [size=4K]
Region 1: I/O ports at dc00 [size=64]
Capabilities: [dc] Power Management version 2
Flags: PMEClk- DSI+ D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=2 PME-
Kernel driver in use: e100
** USB devices:
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 006: ID 046d:c312 Logitech, Inc. DeLuxe 250 Keyboard
Bus 001 Device 002: ID 1a40:0201 TERMINUS TECHNOLOGY INC.
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Kernel: Linux 2.6.32-5-686 (SMP w/1 CPU core)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages linux-image-2.6.32-5-686 depends on:
ii debconf [debconf-2.0] 1.5.36.1 Debian configuration management sy
ii initramfs-tools [linux-initra 0.98.8 tools for generating an initramfs
ii linux-base 2.6.32-41 Linux image base package
ii module-init-tools 3.12-2+b1 tools for managing Linux kernel mo
Versions of packages linux-image-2.6.32-5-686 recommends:
ii firmware-linux-free 2.6.32-41 Binary firmware for various driver
pn libc6-i686 <none> (no description available)
Versions of packages linux-image-2.6.32-5-686 suggests:
pn grub | lilo <none> (no description available)
pn linux-doc-2.6.32 <none> (no description available)
Versions of packages linux-image-2.6.32-5-686 is related to:
pn firmware-bnx2 <none> (no description available)
pn firmware-bnx2x <none> (no description available)
pn firmware-ipw2x00 <none> (no description available)
pn firmware-ivtv <none> (no description available)
pn firmware-iwlwifi <none> (no description available)
ii firmware-linux 0.28+squeeze1 Binary firmware for various driver
ii firmware-linux-nonfree 0.28+squeeze1 Binary firmware for various driver
pn firmware-qlogic <none> (no description available)
pn firmware-ralink <none> (no description available)
pn xen-hypervisor <none> (no description available)
-- debconf information excluded
--
To UNSUBSCRIBE, email to debian-kernel-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Archive: 20120229130302.1073.51709.reportbug@localhost">htt p://lists.debian.org/20120229130302.1073.51709.reportbug@localhost
02-29-2012, 05:36 PM
Jonathan Nieder
Bug#661696: drm/i915: wrong fifo size due to uncareful refactoring which results in an xserver crash at 800x600
tags 661696 = upstream patch moreinfo
quit
Hi Lukas,
Lukas Anzinger wrote:
> During a refactoring of the i915 driver a regression has been introduced
> ([...]h=e70236a8d3d0a4c100a0b9f7d394d9bda9c56aca): For some chipsets
> the wrong fifo size is determined which results in lot's of pixel
> errors when starting the xserver and choosing 800x600 as a
> resolution. If another resolution is used (eg. 1024x768 or
> 1280x1024), I don't encounter this problem.
>
> I've attached a patch that fixes the problem (no pixel errors
> anymore) and determines the correct fifo size.
Thanks for the report and analysis. Please test the attached patch
against 2.6.32.y or a squeeze kernel. If it works, we can send this
to Greg for inclusion in the 2.6.32.y series so everyone benefits.
Hope that helps,
Jonathan
From: Adam Jackson <ajax@redhat.com>
Date: Fri, 16 Apr 2010 18:20:57 -0400
Subject: drm/i915: Attempt to fix watermark setup on 85x (v2)
Bug#661696: drm/i915: wrong fifo size due to uncareful refactoring which results in an xserver crash at 800x600
Hi Jonathan,
looks good to me.
I've also reported this bug upstream under #42839.
Regards,
Lukas
On Wed, Feb 29, 2012 at 19:36, Jonathan Nieder <jrnieder@gmail.com> wrote:
> tags 661696 = upstream patch moreinfo
> quit
>
> Hi Lukas,
>
> Lukas Anzinger wrote:
>
>> During a refactoring of the i915 driver a regression has been introduced
>> ([...]h=e70236a8d3d0a4c100a0b9f7d394d9bda9c56aca): For some chipsets
>> the wrong fifo size is determined which results in lot's of pixel
>> errors when starting the xserver and choosing 800x600 as a
>> resolution. If another resolution is used (eg. 1024x768 or
>> 1280x1024), I don't encounter this problem.
>>
>> I've attached a patch that fixes the problem (no pixel errors
>> anymore) and determines the correct fifo size.
>
> Thanks for the report and analysis. *Please test the attached patch
> against 2.6.32.y or a squeeze kernel. *If it works, we can send this
> to Greg for inclusion in the 2.6.32.y series so everyone benefits.
>
> Hope that helps,
> Jonathan
--
To UNSUBSCRIBE, email to debian-kernel-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Archive: CACB1AevCnHALYyVt57WC+Q=VtjO4g=ZH+xAwza_=B+B0RV9Gp A@mail.gmail.com">http://lists.debian.org/CACB1AevCnHALYyVt57WC+Q=VtjO4g=ZH+xAwza_=B+B0RV9Gp A@mail.gmail.com
03-02-2012, 03:14 PM
Jonathan Nieder
Bug#661696: drm/i915: wrong fifo size due to uncareful refactoring which results in an xserver crash at 800x600
Lukas Anzinger wrote:
> looks good to me.
Do you mean that the patch looks good or that you've tried applying it
and the behavior was bad before and good afterward?
(If you haven't tested it yet, here's a quick demo.
# if you don't already have a copy of the kernel with history:
git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
cd linux
# get point releases
git remote add -f stable
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
# test baseline. Warning: while 2.6.32.y is maintained, 2.6.33.y isn't.
git checkout stable/linux-2.6.32.y
cp /boot/config-$(uname -r) .config; # current configuration
make localmodconfig; # optional: minimize configuration
make deb-pkg; # optionally with -j<num> for parallel build
dpkg -i ../<name of package>
reboot
# hopefully it reproduces the bug. So try the patch:
cd linux
git am -3sc <path to the patch>
make deb-pkg; # maybe with -j4
dpkg -i ../<name of package>
reboot
)
--
To UNSUBSCRIBE, email to debian-kernel-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Archive: 20120302161433.GA20520@burratino">http://lists.debian.org/20120302161433.GA20520@burratino