From: Pavel Hofman <pavel.hofman@insite.cz>
To: Takashi Iwai <tiwai@suse.de>
Cc: alsa-devel@alsa-project.org
Subject: Re: MIDI on ice1724 - real-time kernel problem
Date: Wed, 30 Apr 2008 22:07:42 +0200 [thread overview]
Message-ID: <4818D18E.5040409@insite.cz> (raw)
In-Reply-To: <s5h63u64dgt.wl%tiwai@suse.de>
Takashi Iwai wrote:
> At Fri, 25 Apr 2008 09:06:19 +0200,
> Pavel Hofman wrote:
>> Takashi Iwai wrote:
>>>> I do not know the reason for MPU401_INFO_NO_ACK. You removed it from the
>>>> original patch, but without it I always get the input/output error.
>>> Ah, thanks, I overlooked it.
>>> Fixed now.
>> Takashi, thanks, but the patch I sent you sets MPU401_INFO_INPUT and
>> MPU401_INFO_OUTPUT flags too. They enable the actual input/output
>> methods in mpu401_uart.c.
>
> They aren't needed if you create full-duplex streams.
> Could you check whether the latest code still causes any errors?
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.
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.
My HW: ancient AMD Duron 900MHz.
The interrupt flood occurs no matter whether the MIDI input is connected
to my MIDI keyboard or not.
Thanks a lot to anyone for suggestions.
Pavel.
next prev parent reply other threads:[~2008-04-30 20:07 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-04-22 20:23 MIDI on ice1724 - preliminary findings and questions Pavel Hofman
2008-04-23 10:05 ` Takashi Iwai
2008-04-23 11:08 ` Pavel Hofman
2008-04-23 20:19 ` MIDI on ice1724 - long delays Pavel Hofman
2008-04-24 16:29 ` Takashi Iwai
2008-04-24 20:47 ` Pavel Hofman
2008-04-25 6:22 ` Takashi Iwai
2008-04-25 7:06 ` MIDI on ice1724 - fixing HG Pavel Hofman
2008-04-25 7:10 ` Takashi Iwai
2008-04-25 7:25 ` Pavel Hofman
2008-04-30 20:07 ` Pavel Hofman [this message]
2008-05-02 12:43 ` MIDI on ice1724 - real-time kernel problem Takashi Iwai
2008-05-03 19:12 ` Pavel Hofman
2008-05-07 10:25 ` Takashi Iwai
2008-05-08 19:35 ` Pavel Hofman
2008-05-15 7:21 ` Clemens Ladisch
2008-05-15 9:00 ` Takashi Iwai
2008-05-18 20:02 ` PATCH - MIDI on ice1724 - real-time kernel problem SOLVED Pavel Hofman
2008-05-20 8:44 ` Clemens Ladisch
2008-05-20 19:15 ` Pavel Hofman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4818D18E.5040409@insite.cz \
--to=pavel.hofman@insite.cz \
--cc=alsa-devel@alsa-project.org \
--cc=tiwai@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.