Takashi Iwai wrote: > At Wed, 30 Apr 2008 22:07:42 +0200, > Pavel Hofman wrote: >> Takashi Iwai wrote: >>> At Fri, 25 Apr 2008 09:06:19 +0200, >>> Pavel Hofman wrote: >> The code works fine on standard kernel. >> >> But in the RT kernel of Ubuntu 7.10 (2.6.22-14-rt, 1000HZ compared to >> 250HZ of the -generic kernel), MIDI interrupts get thrown continuously, >> hogging CPU with the IRQXX "process". >> >> When playing 44.1kHz audio with buffer size of 32768, >> snd_vt1724_interrupt is called every 185ms. With the buffer size of >> 4096, it is every 23ms. So far so good. >> >> But when I try to output some midi, the routine gets called every 24us >> (i.e. 1000 times faster). Comparing the time difference between my >> several debug printk's in snd_vt1724_interrupt (approx. 5us between each >> printk record a few lines of code apart) and between each call of the >> method (24us), I thought there would be a loop somewhere in the >> interrupt handler calling code. But /proc/interrupts really shows over >> 40k interrupts a second for ICE1724. >> >> Changing the watermarks up to 0x1f makes no difference. > > That looks bad. > >> Masking the MIDI interrupts works, snd_vt1724_interrupt is called only >> during VT1724_IRQ_MTPCM interrupts, with the MIDI status bits >> MPU_TX/MPU_RX set when reading/writing with amidi. > > Hm, is it TX or RX, or in both cases? > Could you check which one (TX or RX) causes this? > Both reading (amidi -p hw:0 -d) and writing (amidi -p hw:0 -S F0411042110C000000000074FF0411042110C000000) starts the TX interrupt flood (irq status: 0x20) immediately. Upon opening input as well as output the method snd_mpu401_do_reset is called - is perhaps the culprit somewhere there? Thanks, Pavel. _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel