> > 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/

Reply via email to