Re: comedi and interrupts

On Mon, Dec 08, 2003 at 04:06:08PM +0100, Nils Juergens wrote:
> Hi,
> 
> i'm trying to enhance the command support for the adv_pci1710 so that it
> supports scan_begin_src = TRIG_EXT.

You can't do this for all the reasons you describe below.  Use (and
extend if necessary) the comedi_rt_timer driver.



dave...


> Do do this i use TRIG_WAKE_EOS and count the number of samples. When the end
> of on scan is reached, i switch back from pacer to external trigger. On the
> next interrupt i switch back to using the pacer.
> 
> Now what happens is that i seem to loose interrupts. Sometimes the on-board
> fifo is not empty after reading the one sample that should be there.
> 
> This even happens with (as i think) moderate sampling frequencies - i have
> an external source for the external trigger with 1kHz and set the internal
> pacer to 100000ns (10kHz) and do two samples per scan.
> 
> As i understand it interrupt_pci1710_every_sample() is the real ISR for this
> board - it runs with all other interrupts disabled, so there should only be a
> small delay between the interrupt and the calling of my the function. The
> irq i'm using (IRQ 7) is not shared with any other board. Also, i'm not
> doing any fancy stuff in there - my version is not much different from what
> is in CVS.
> 
> Still, i get "A/D data dropout" messages all of the time. I've tried
> compiling Comedi with RTAI and running an RTAI-enabled kernel, but it didn't
> change anything.
> 
> It would be nice if anyone could share insight on the following speculations
> on what is going wrong:
> 
>  * interrupt_pci1710_every_sample() is not really the ISR but is executed as
>    the bottom-half (tasklet or softirq)
>    
>  * my hardware is too slow (P4 2.4GHz with i854d chipset and 512MB dual-ddr
>    memory).
>  
>  * modern hardware with APICs has bad interrupt behaviour with respect to
>    lots of interrupts per second
>    
>  * my interrupt routine is too slow (calling comedi_event() and
>    comedi_putbuf() nearly every interrupt)
>    
>  * i'm stupid and have missed (or completely misunderstood) something
>  
> 
> thanks,
> 
> Nils
> 
> 
> _______________________________________________
> comedi mailing list
> comedi_at_comedi.org
> https://cvs.comedi.org/cgi-bin/mailman/listinfo/comedi

Received on 2003-12-09Z00:19:06