Markus Franke | 3 Jan 2007 11:20
Picon

Re: parallelport module for measuring external interrupt latency

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
Attachment (Markus.Franke.vcf): text/x-vcard, 260 bytes
_______________________________________________
Xenomai-help mailing list
Xenomai-help <at> gna.org
https://mail.gna.org/listinfo/xenomai-help

Gmane