> > I have the following numbers:
> >
> > Case 1: the IRQ handler sends the output pulse - 6us.
> > Case 2: the IRQ handler dispatches a rt thread which sends the output pulse
> > - 10us.
> >
> > Case 3: the IRQ handler stuffs an RT fifo with an int; a user space process
> > does a blocking read on the fifo and sends the output pulse - 40us
> > (sometimes 50).
For case #3, you should also test it with/without disk activity as well
as activity with other interfaces. With disk activity, I see the numbers
for case #3 range from 40us to 2ms or so when I have disk interrupts and
dma active. Dramatic differences can
be seen by enabling/disabling hard disk interrupts and hard disk DMA.
Generic linux does not necessarily use interrupts or dma unless you enable
it. To check do this as root:
hdparm /dev/hda
and get something like this back:
bash# hdparm /dev/hda
/dev/hda:
multcount = 0 (off)
I/O support = 0 (default 16-bit)
unmaskirq = 0 (off)
using_dma = 1 (on)
keepsettings = 0 (off)
nowerr = 0 (off)
readonly = 0 (off)
readahead = 8 (on)
geometry = 787/255/63, sectors = 12658776, start = 0
To enable interrupts use:
hdparm -u 1 /dev/hda
Configuring the disk has had a profound (positive) impact on everything
I've done using linux/rtlinux for data acquisition systems. With the disk
interrupt on, and using disk dma, the system I'm working on now can easily
process 15-20mb/second and write 6-10mb/second to disk.
-Wayne
-- [rtl] ---
To unsubscribe:
echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
--
For more information on Real-Time Linux see:
http://www.rtlinux.org/rtlinux/