3 Jan 2007 11:20
Re: parallelport module for measuring external interrupt latency
Markus Franke <Markus.Franke <at> informatik.tu-chemnitz.de>
2007-01-03 10:20:50 GMT
2007-01-03 10:20:50 GMT
Jan Kiszka wrote:
>>// ISR
>>int parport_isr(xnintr_t* cookie)
>>{
>> rdtsc(t_end);
>>
>> outb(0x00,SPPDATAPORT);
>>
>>#ifdef DEBUG
>> printk(KERN_INFO "parport_latency: Interrupt fired!!!\n");
>> printk(KERN_INFO "parport_latency: interruptcount before = %d!!!\n",atomic_read(&interruptcount));
>>#endif
>>
>> atomic_inc(&interruptcount);
>>
>>#ifdef DEBUG
>> printk(KERN_INFO "parport_latency: interruptcount after= %d!!!\n",atomic_read(&interruptcount));
>>#endif
>>
>> wake_up_interruptible(&intlatpar_queue);
>
>
> This is a hard-RT IRQ handler, thus any scheduling Linux service is
> strictly forbidden.
>
> [Reminds me of the I-pipe debugging service that can catch such faults
> but still needs some integration work...]
Ok I understand. But somehow I have to notify the read()-call that it
can compute the latency value. Do you have any suggestions how to do that?
>> if(register_chrdev(INTLAT_DEV_MAJOR,INTLAT_DEV_NAME,&intlat_fops) < 0)
>> {
>> printk(KERN_WARNING "intlat: parport_latency(): register_chrdev() failed.\n");
>> rt_intr_disable(&intr);
>> return -1;
>> }
>
>
> Hmm, a Linux character device for this purpose... I guess you should
> study the existing irqbench test a bit first. And if you don't see why
> something is done the way it is - ask here.
Yes of course I have already studied the irqbench test but it uses the
RTDM skin. I also know that this skin should be used for developing hard
realtime drivers. But I just need to measure latencies and I don't want
to develop a huge realtime driver. I just need some values for
comparison with the driver working on plain linux. I was wondering
whether it is possible to rewrite the driver working on plain linux by
using the Xenomai native API.
Why isn't it possible to use a Linux character device. I just want to
transfer the latency values to the user space task which is out of any
realtime context I think.
Thanks in advance,
Markus Franke
_______________________________________________ Xenomai-help mailing list Xenomai-help <at> gna.org https://mail.gna.org/listinfo/xenomai-help
RSS Feed