All of lore.kernel.org
 help / color / mirror / Atom feed
* [Xenomai-help] rt_intr_wait takes 10ms
@ 2008-05-25  0:02 Tomas Kalibera
  2008-05-25 14:09 ` Gilles Chanteperdrix
  0 siblings, 1 reply; 2+ messages in thread
From: Tomas Kalibera @ 2008-05-25  0:02 UTC (permalink / raw)
  To: xenomai; +Cc: Jan Kiszka


Hi,

I've measured interrupt latencies using irqbench and extended it a bit 
to measure also latencies of a user space task that uses "rt_intr_wait", 
as opposed to the specialized ioctl call used presently by the benchmark.

I found out that when the call to rt_intr_wait does not block (there is 
already an interrupt pending), the latency is nice, i.e. 20us. However, 
when rt_intr_wait blocks, the latency is 10ms (the whole quantum).

I thought that once the interrupt arrives and the kernel space header 
signals the interrupt, the Xenomai scheduler should be invoked and 
should preempt any presently running thread and immediately wake up the 
thread blocked in rt_intr_wait. Is this correct ?

The thread blocked in rt_intr_wait had maximum priority (99) and was in 
primary mode.

Interestingly, when I run the original version of the irqbench 
benchmark, even the user space version (-t 0, default) that waits for 
the interrupt using the specialized ioctl call, had nice latencies about 
20us. Any ideas why the rt_intr_wait does not behave equally well ?

Thanks,
Tomas




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

* Re: [Xenomai-help] rt_intr_wait takes 10ms
  2008-05-25  0:02 [Xenomai-help] rt_intr_wait takes 10ms Tomas Kalibera
@ 2008-05-25 14:09 ` Gilles Chanteperdrix
  0 siblings, 0 replies; 2+ messages in thread
From: Gilles Chanteperdrix @ 2008-05-25 14:09 UTC (permalink / raw)
  To: Tomas Kalibera; +Cc: xenomai, Jan Kiszka

Tomas Kalibera wrote:
 > 
 > Hi,
 > 
 > I've measured interrupt latencies using irqbench and extended it a bit 
 > to measure also latencies of a user space task that uses "rt_intr_wait", 
 > as opposed to the specialized ioctl call used presently by the benchmark.
 > 
 > I found out that when the call to rt_intr_wait does not block (there is 
 > already an interrupt pending), the latency is nice, i.e. 20us. However, 
 > when rt_intr_wait blocks, the latency is 10ms (the whole quantum).
 > 
 > I thought that once the interrupt arrives and the kernel space header 
 > signals the interrupt, the Xenomai scheduler should be invoked and 
 > should preempt any presently running thread and immediately wake up the 
 > thread blocked in rt_intr_wait. Is this correct ?
 > 
 > The thread blocked in rt_intr_wait had maximum priority (99) and was in 
 > primary mode.
 > 
 > Interestingly, when I run the original version of the irqbench 
 > benchmark, even the user space version (-t 0, default) that waits for 
 > the interrupt using the specialized ioctl call, had nice latencies about 
 > 20us. Any ideas why the rt_intr_wait does not behave equally well ?

Did you check the interrupts count returned by rt_intr_wait ? What else
do you do in the loop calling rt_intr_wait ? Do not you use special
features such as I_NO_AUTOENA ?

-- 


					    Gilles.


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

end of thread, other threads:[~2008-05-25 14:09 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-05-25  0:02 [Xenomai-help] rt_intr_wait takes 10ms Tomas Kalibera
2008-05-25 14:09 ` Gilles Chanteperdrix

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.