[BUG] Interesting race between cpufreq_ondemand and snd_atiixp

From: S.ÃaÄlar Onur
Date: Fri Jun 15 2007 - 19:34:59 EST


Hi;

One of our colleagues found following problem with his old laptop while
testing Linus's latest git with external alsa-driver (v1.0.14). And we can
also reproduce same problem with 2.6.18.8 so it seems not a new regression
(if it is a regression).

As a summary "sound stops to work if cpufreq_ondemand governor is used" on
that laptop. Problem occurs only if cpufreq_* modules are loaded and %100
reproducable if system configured for ondemand governor.

Here are the steps to reproduce the problem on that laptop;

1. Boot system with cpufreq_* modules blacklisted
strace -o log -f -tttTTT mpg123 some.mp3

works without a problem [full log @ 1]

2. modprobe cpufreq_ondemand
echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
strace -o log -f -tttTTT mpg123 some.mp3

hangs and no sound at all [full log @ 2]

3. echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
strace -o log -f -tttTTT mpg123 some.mp3

works without a problem [full log @ 3]

And with both 2.6.18.8 and 2.6.22-rc4 KDE (artsd) starts to gave "Operation
not denied" errors on login, and after that error occured stracing mpg123
from console gaves following output (the very same check of semctl fails with
EINTR with second) [full log @ 4];

...
4004 1181948891.899907 semget(5678293, 1, IPC_CREAT|0660) = 1081344
<0.000010>
4004 1181948891.899945 semctl(1081344, 0, IPC_64|IPC_STAT, 0xbfd1b498) = 0
<0.000009>
4004 1181948891.899981 semctl(1081344, 0, IPC_64|IPC_SET, 0xbfd1b498) = -1
EPERM (Operation not permitted) <0.000009>
4004 1181948891.900026 semop(1081344, 0xbfd1b6a0, 2) = -1 EINTR (Interrupted
system call) <15.979441>
4004 1181948907.879574 --- SIGTERM (Terminated) @ 0 (0) ---
4004 1181948907.879782 +++ killed by SIGTERM +++

You can also find dmesg [5], lspci -vv [6], lsmod [7], /proc/cpuinfo
[8], /proc/interrupts [9] and used .config [10] from there.

I have also a physical access to that laptop so please just ask if you want
anything else.

[1] http://cekirdek.pardus.org.tr/~caglar/kernel/working
[2] http://cekirdek.pardus.org.tr/~caglar/kernel/notworking
[3] http://cekirdek.pardus.org.tr/~caglar/kernel/againworking
[4] http://cekirdek.pardus.org.tr/~caglar/kernel/perm
[5] http://cekirdek.pardus.org.tr/~caglar/kernel/dmesg_2.6.22
[6] http://cekirdek.pardus.org.tr/~caglar/kernel/lspci
[7] http://cekirdek.pardus.org.tr/~caglar/kernel/lsmod_2.6.22
[8] http://cekirdek.pardus.org.tr/~caglar/kernel/cpuinfo
[9] http://cekirdek.pardus.org.tr/~caglar/kernel/interrupts
[10] http://cekirdek.pardus.org.tr/~caglar/kernel/config

Cheers
--
S.ÃaÄlar Onur <caglar@xxxxxxxxxxxxx>
http://cekirdek.pardus.org.tr/~caglar/

Linux is like living in a teepee. No Windows, no Gates and an Apache in house!

Attachment: signature.asc
Description: This is a digitally signed message part.