Date: Sat, 10 Feb 2007 22:02:45 +0300 (MSK) From: Yuriy Tsibizov <Yuriy.Tsibizov@gfk.ru> To: Rink Springer <rink@FreeBSD.org> Cc: current@FreeBSD.org, multimedia@FreeBSD.org Subject: Re: snd_emu10k1 tremendous interrupt load? Message-ID: <20070210213917.G45255@free.home.local> In-Reply-To: <20070209182021.GA63685@rink.nu> References: <20070209182021.GA63685@rink.nu>
next in thread | previous in thread | raw e-mail | index | archive | help
> 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.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070210213917.G45255>