From: Anders Blomdell <anders.blomdell@domain.hid>
To: xenomai@xenomai.org
Subject: [Xenomai-core] Are XN_ISR_CHAINED and XN_ISR_ENABLE mutually exclusive?
Date: Wed, 01 Feb 2006 14:59:29 +0100 [thread overview]
Message-ID: <43E0BEC1.2060400@domain.hid> (raw)
In-Reply-To: <b647ffbd0601311053s2f9f77c3m@domain.hid>
While looking into how to implement sharing of interrupts between realtime and
non-realtime domains (and applying Wolfgang Grandegger's patch
[https://mail.gna.org/public/xenomai-core/2006-01/msg00233.html], which is
necessary to make XN_ISR_ENABLE work at all on the PowerPC platform), I'm
beginning to think that XN_ISR_CHAINED and XN_ISR_ENABLE are mutually exclusive,
since if both are set, desc->handler->end will be called twice:
1. When the realtime isr handler returns
2. When the Linux domain calls it in __do_IRQ
In the solution I have in mind at the moment, I will:
1. Add an extra iend handler argument to xnintr_init
2. If XN_ISR_ENABLE is returned from the isr handler,
replace desc->handler->end with the user supplied
iend handler.
Hereby I hope to be able to handle interrupts shared between realtime and
non-realtime domain, without having the realtime domain wait for all
non-realtime interrupts to finish. This is the scenario I'm thinking of:
1. A non-RT interrupt occurs
2. The (RT) isr handler detects the non-RT interrupt,
disables further non-RT interrupts on that irq-vector, replaces
desc->handler->end with the user supplied iend handler,
returns XN_ISR_CHAINED | XN_ISR_ENABLE.
3. RT interrupts are serviced by the (RT) isr handler,
returns XN_ISR_ENABLE
4. The Linux domain get a chance to run the chained interrupt,
and eventually calls desc->handler->end (supplied iend handler)
5. The iend handler reenables non-RT interrupts.
Comments on the above are most welcome!
--
Anders Blomdell
next prev parent reply other threads:[~2006-02-01 13:59 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-01-31 18:53 [Xenomai-core] [PATCH] Shared irqs v.6 Dmitry Adamushko
2006-01-31 19:09 ` Jan Kiszka
2006-01-31 19:50 ` Dmitry Adamushko
2006-01-31 20:14 ` Jan Kiszka
2006-02-01 8:32 ` Jeroen Van den Keybus
2006-02-01 8:46 ` Jan Kiszka
2006-01-31 19:40 ` Jan Kiszka
2006-02-01 13:59 ` Anders Blomdell [this message]
2006-02-01 14:52 ` [Xenomai-core] Are XN_ISR_CHAINED and XN_ISR_ENABLE mutually exclusive? Jan Kiszka
2006-02-01 15:00 ` Anders Blomdell
2006-02-01 15:26 ` Anders Blomdell
2006-02-06 11:34 ` [Xenomai-core] [BUG] problems with adeos-ipipe-2.6.14-ppc-1.2-00.patch Anders Blomdell
2006-02-06 18:44 ` Philippe Gerum
2006-02-07 16:04 ` [Xenomai-core] [PATCH] Slow is faster arch/ppc/syslib/open_pic.c Anders Blomdell
2006-02-07 16:16 ` Philippe Gerum
2006-02-08 9:40 ` Philippe Gerum
2006-02-08 17:57 ` Philippe Gerum
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=43E0BEC1.2060400@domain.hid \
--to=anders.blomdell@domain.hid \
--cc=xenomai@xenomai.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.