At Tue, 17 Feb 2009 11:49:17 +0000, Charlie Baylis wrote:
Hi
Some time ago, quake3 stopped running correctly on my PC. This occured when changing kernel from 2.6.25 to 2.6.27. The symptom is that within a fraction of a second of gameplay, the game freezes. Switching to a console allows the game to be killed. I am using standard kernel.org kernels with no additional patches.
Could you check whether it happens with 2.6.29-rc5? On 2.6.29, the delayed handling is done via its own workqueue, so this might be no longer a problem.
Also you could try position_fix=1 instead of bdl_pos_adj.
The problem is likely your hardware does unreliable DMA position reporting. Detecting such a broken hardware would be possible, but it'll be a bit tricky...
Takashi
I have bisected the problem, and found that commit 675f25d4d3ff6501cbce608bcc2333a56ec4c105 (ALSA: hda - Add bdl_pos_adj option) introduced the problem. The bdl_pos_adj option described in the commit log can be adjusted to workaround the problem.
If I run the following command, the game runs correctly. # echo 0 > /sys/module/snd_hda_intel/parameters/bdl_pos_adj
The PC has a Asus N4L VM DH motherboard. lspci describes the hardware as: $ lspci 00:00.0 Host bridge: Intel Corporation Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (rev 03) 00:02.0 VGA compatible controller: Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller (rev 03) 00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 02) 00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 02) 00:1c.2 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 3 (rev 02) 00:1c.3 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 4 (rev 02) 00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #1 (rev 02) 00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #2 (rev 02) 00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #3 (rev 02) 00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #4 (rev 02) 00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 02) 00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e2) 00:1f.0 ISA bridge: Intel Corporation 82801GHM (ICH7-M DH) LPC Interface Bridge (rev 02) 00:1f.2 IDE interface: Intel Corporation 82801GBM/GHM (ICH7 Family) SATA IDE Controller (rev 02) 00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 02) 01:00.0 Ethernet controller: Intel Corporation 82573L Gigabit Ethernet Controller 02:00.0 SATA controller: JMicron Technologies, Inc. JMicron 20360/20363 AHCI Controller (rev 02) 02:00.1 IDE interface: JMicron Technologies, Inc. JMicron 20360/20363 AHCI Controller (rev 02) 04:03.0 FireWire (IEEE 1394): Texas Instruments TSB43AB22/A IEEE-1394a-2000 Controller (PHY/Link)
Userspace is debian lenny on i386.
Let me know if you need more info.
Regards Charlie