All of lore.kernel.org
 help / color / mirror / Atom feed
* [Adeos-main] 260 uSec latency and no idea why
@ 2004-03-11  2:26 Dirk Roloff
  2004-03-11 19:04 ` Paolo Mantegazza
  0 siblings, 1 reply; 13+ messages in thread
From: Dirk Roloff @ 2004-03-11  2:26 UTC (permalink / raw)
  To: adeos-main

Hello List,

i have a interrupt latency of ~ 260 µSec and i do not know why.
I am using kernel 2.4.28 + adeos r10
Have a Celeron 2 GHz. Single CPU with IO-APIC (But tested this also with noapic boot parameter)
APM is disabled (The IDLE calls could cause some latency)
Running in Textmode - so no X is started.
Having a IDE-Device which dose not use DMA.
Any more Infos needed ?

The results are 4 to 8 µSec latency in the Realtime Domain normaly but somtimes i see ~260 - 270 µSek.
The only thing i found in the kernel tree is the prink() funktion which uses some spinlock which disables irq's.
Could this be the source. Or has anybody a idea where to search deeper ?


How i mesure the delay: (This is only a test, because i have latency problems with an ugly device driver)

1.) Connect pin 9 to 10 of my ParPort. So if i set Pin 10 up it aserts a IRQ 7 on Pin 9
2.) Write a module to messure the latency.

Short description:

- creating a proc-fs entry 
- create a relatime domain with higher Priority then Linux.
- in the domain main adeos_virtualize_irq(7, &rt_latency_isr,rt_latency_ack, IPIPE_PASS_MASK | IPIPE_HANDLE_MASK );

The proc-fs read function i will 
{
    interruptcount=0;

    adeos_hw_local_irq_save( flags );
    do_gettimeofday(&tv[0]);
    outb(0x80,SPPDATAPORT); /* assert the interrupt signal */
    adeos_hw_local_irq_restore( flags );

    while( !interruptcount )
    {
            latency_sleep(1);
                        if(signal_pending(current)) break;
    }

   calc timediff between tv[0] tv[1] tv[2] and tv[3] and give the reslut back
}

in rt_latency_ack, 
{
	do_gettimeofday(&tv[1]);
	return 0;
}

in rt_latency_isr the realtime isr
{
	do_gettimeofday(&tv[2]);
}
in the Linux isr
{
  do_gettimeofday(&tv[3]);
  outb(0x00,SPPDATAPORT); /* deassert the interrupt signal */
  interruptcount++;
}

Could anybody help ?

Thanks 
Dirk Roloff




^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2004-03-18 13:11 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-03-11  2:26 [Adeos-main] 260 uSec latency and no idea why Dirk Roloff
2004-03-11 19:04 ` Paolo Mantegazza
2004-03-12  3:22   ` Dirk Roloff
2004-03-12  7:44     ` Der Herr Hofrat
2004-03-12 17:14       ` Dirk Roloff
2004-03-12 19:32       ` Paolo Mantegazza
2004-03-12  9:52         ` Gilles Chanteperdrix
2004-03-12 10:08           ` Der Herr Hofrat
2004-03-12 17:15           ` Dirk Roloff
2004-03-12 18:45     ` Paolo Mantegazza
2004-03-12 23:00       ` Dirk Roloff
2004-03-15  8:53         ` Vitor Angelo
2004-03-18 13:11           ` Dirk Roloff

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.