Skip to contentSkip to conversation

Interesting race between cpufreq_ondemand and snd_atiixp

BUG S.Çağlar Onur 2 participants 4 messages Jun 15, 2007 – Jun 16, 2007

lore
Share & tools
lore
#0 lore raw

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

Signature · 4 lines
S.Çağlar Onur <[email protected]>
http://cekirdek.pardus.org.tr/~caglar/

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

16 Haz 2007 Cts tarihinde, S.Çağlar Onur şunları yazmıştı:
...

Quoted 1 line

3. echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

^^^ performance

Sorry for typo!

Quoted 3 lines

strace -o log -f -tttTTT mpg123 some.mp3

works without a problem [full log @ 3]

Cheers

Signature · 4 lines
S.Çağlar Onur <[email protected]>
http://cekirdek.pardus.org.tr/~caglar/

Linux is like living in a teepee. No Windows, no Gates and an Apache in house!
#2 lore raw
In reply to S.Çağlar Onur
Quoted 8 lines · S.Çağlar Onur

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.

I'm puzzled. The cpuinfo shows that this cpu doesn't have speedstep, so why acpi-cpufreq successfully loads is a mystery.

What's in/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies ?

Maybe the acpi implementation is faking multiple speeds using throttling a la p4-clockmod, which would be a bit loopy, but possible I guess.

Dave

Signature · 1 line
http://www.codemonkey.org.uk
#3 lore raw

Hi;

16 Haz 2007 Cts tarihinde, Dave Jones şunları yazmıştı:

Quoted 10 lines · S.Çağlar Onur
Quoted 8 lines

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.

Quoted 5 lines

I'm puzzled. The cpuinfo shows that this cpu doesn't have speedstep, so why acpi-cpufreq successfully loads is a mystery.

What's in/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
?

mavi ~ #
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies 2793000 1596000

Quoted 2 lines

Maybe the acpi implementation is faking multiple speeds using throttling a la p4-clockmod, which would be a bit loopy, but possible I guess.

modprobe p4-clockmod with 2.6.18.8 ends up with "Device or resource busy"

Cheers

Signature · 4 lines
S.Çağlar Onur <[email protected]>
http://cekirdek.pardus.org.tr/~caglar/

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

_______________________________________________
Cpufreq mailing list
[email protected]
http://lists.linux.org.uk/mailman/listinfo/cpufreq