All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dirk Roloff <roloff@domain.hid>
To: adeos-main@gna.org
Subject: [Adeos-main] 260 uSec latency and no idea why
Date: Thu, 11 Mar 2004 03:26:33 +0100	[thread overview]
Message-ID: <200403110326.33694.roloff@domain.hid> (raw)

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




             reply	other threads:[~2004-03-11  2:26 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-03-11  2:26 Dirk Roloff [this message]
2004-03-11 19:04 ` [Adeos-main] 260 uSec latency and no idea why 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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200403110326.33694.roloff@domain.hid \
    --to=roloff@domain.hid \
    --cc=adeos-main@gna.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.