snd_emu10k1 tremendous interrupt load?
Yuriy Tsibizov
Yuriy.Tsibizov at gfk.ru
Sat Feb 10 19:21:42 UTC 2007
> Hi people,
>
> Over the last few days, my CURRENT box has started to slow down to a
> crawl. top(1) reports most CPU load is spent on interrupts, and a quick
> vmstat -i to support this completely:
>
> interrupt total rate
> irq1: atkbd0 1631 0
> irq15: ata1 14197 2
> irq16: pcm0 1056243398 160109
Rate for emu10k1 cards should be arount 48 interrupts/s. Do you record or
play sound?
Can you see any changes in interrupt rate when you change
hw.snd.latency_profile?
You can also try to go back to dev/sound/pcm before 2007-02-01 09:30.
> Does anyone have any ideas why this is happening? Quick inspection of
> /sys/dev/sound/pci/emu10k1.c:emu_intr() seems to hint that the
> emu_rd(sc, IPR, 4) value takes a long time to clear, anyone have more
> hints on this annoying behaviour?
It may take some time because usual read rate should be around 48-96
reads/second and HW can't survive high register I/O rate.
Other possibility is very low HW timer settings (like "interrupt after
each 16 bytes", that is very unusual too) that will re-set this register
after very small delay, comparable with duration of sound buffer
callbacks. This will keep driver in interrupt loop and slow down
everything. snd_emu10kx may work better in this situation (it uses
different timer interrupt settings).
Yuriy.
More information about the freebsd-multimedia
mailing list