All of lore.kernel.org
 help / color / mirror / Atom feed
* [Xenomai-help] Propagating interrupts
@ 2006-11-01 23:46 Jeff Webb
  2006-11-02  7:54 ` Jan Kiszka
  0 siblings, 1 reply; 2+ messages in thread
From: Jeff Webb @ 2006-11-01 23:46 UTC (permalink / raw)
  To: Xenomai help


I have read that propagating interrupts to Linux is a bad idea for RT applications.  I am trying to understand what happens when I install an interrupt handler via the userspace POSIX skin like this:

  pthread_intr_attach_np (&ctr_intr, irq_number, PTHREAD_IPROPAGATE);

My RT thread waits on this interrupt using:

  pthread_intr_wait_np(ctr_intr, NULL);

Here is my understanding of what happens when I get an interrupt on this IRQ.  The Xenomai interrupt handler is executed, which wakes up my RT thread.  The interrupt remains masked until the Linux interrupt handler is executed.  The linux interrupt handler processes the interrupt, and then re-enables the IRQ.  Now the RT thread can receive more interrupts.

Is this basically correct?

-Jeff


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

* Re: [Xenomai-help] Propagating interrupts
  2006-11-01 23:46 [Xenomai-help] Propagating interrupts Jeff Webb
@ 2006-11-02  7:54 ` Jan Kiszka
  0 siblings, 0 replies; 2+ messages in thread
From: Jan Kiszka @ 2006-11-02  7:54 UTC (permalink / raw)
  To: Jeff Webb; +Cc: Xenomai help

[-- Attachment #1: Type: text/plain, Size: 1043 bytes --]

Jeff Webb wrote:
> 
> I have read that propagating interrupts to Linux is a bad idea for RT
> applications.  I am trying to understand what happens when I install an
> interrupt handler via the userspace POSIX skin like this:
> 
>  pthread_intr_attach_np (&ctr_intr, irq_number, PTHREAD_IPROPAGATE);
> 
> My RT thread waits on this interrupt using:
> 
>  pthread_intr_wait_np(ctr_intr, NULL);
> 
> Here is my understanding of what happens when I get an interrupt on this
> IRQ.  The Xenomai interrupt handler is executed, which wakes up my RT
> thread.  The interrupt remains masked until the Linux interrupt handler
> is executed.  The linux interrupt handler processes the interrupt, and
> then re-enables the IRQ.  Now the RT thread can receive more interrupts.
> 
> Is this basically correct?

Yes, the Linux domain can cause priority inversion /wrt the real-time
domain trying to handle the same IRQ line. That's true for any
deterministic/indeterministic IRQ handler combination, not only under
Xenomai.

Jan


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 250 bytes --]

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

end of thread, other threads:[~2006-11-02  7:54 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-11-01 23:46 [Xenomai-help] Propagating interrupts Jeff Webb
2006-11-02  7:54 ` Jan Kiszka

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.