From: Jan Kiszka <jan.kiszka@domain.hid>
To: Dmitry Adamushko <dmitry.adamushko@domain.hid>
Cc: xenomai@xenomai.org
Subject: [Xenomai-core] Re: [patch, RFC] detect unhandled interrupts
Date: Tue, 29 Aug 2006 21:50:04 +0200 [thread overview]
Message-ID: <44F49A6C.5050603@domain.hid> (raw)
In-Reply-To: <b647ffbd0608291228i58bfa3fex5e8f3e18dc0ecc0@domain.hid>
[-- Attachment #1: Type: text/plain, Size: 2138 bytes --]
Dmitry Adamushko wrote:
> Hello,
>
> Jan has rised this question initially and I was struggling last week to get
> his request eventually done :)
>
> The main idea is to prevent system lockups when the cross domain IRQ
> sharing
> isn't properly used (there were a number of reports recently).
>
> So here is an initial patch as well as some related critics (yep, I
> critisize my own patch).
>
> I tend to think now :
>
> 1) "unhandled" is not necessary indeed (do we need chasing "spurious"
> interrupts the way Linux does it? i.e. it disables the line only after a
> number of consequently unhandled interrupts > SOME_LIMIT);
>
> 2) XN_ISR_NONE --> should _not_ imply that the line gets re-enabled.
>
> XN_ISR_HANDLED -- implies it, that's ok.
>
> But XN_ISR_NONE (all ISRs in case of a shared RT line) should really mean
> "something strange happens" and it can be :
>
> o either a spurious interrupt;
>
> o something is "sitting" on the same line in the linux domain. ISR should
> have returned XN_ISR_PROPAGATE in this case.
>
>
> That said, if we are not interested in chasing "spurious" interrupts the
> linux way, then this patch could be highly simplified to just adding the
> following check in all nucleus ISR handlers.
>
> + if (unlikely(s == XN_ISR_NONE)) {
> + xnlogerr("xnintr_check_status: %d of unhandled consequent
> interrupts. "
> + "Disabling the IRQ line #%d\n",
> + XNINTR_MAX_UNHANDLED, irq);
> + s |= XN_ISR_NOENABLE;
> + }
>
> I tend to think this would be nicer?
>
I think the additional costs of maintaining an error counter are almost
negligible. The test is in the unlikely path, and the first condition
already keeps us away from touching the counter. The benefit of not
kicking out IRQ lines on spurious IRQs is obvious (think of EMC issues,
though one should better solve them on the board...).
BTW, is there a difference between unlikely(a && b) and unlikely(a) &&
unlikely(b) that we should care about here?
Patch looks good to me.
Jan
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 249 bytes --]
next prev parent reply other threads:[~2006-08-29 19:50 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-08-29 19:28 [Xenomai-core] [patch, RFC] detect unhandled interrupts Dmitry Adamushko
[not found] ` <44F496D7.60609@domain.hid>
2006-08-29 19:38 ` [Xenomai-core] " Dmitry Adamushko
2006-08-29 19:50 ` Jan Kiszka [this message]
2006-08-29 20:34 ` Dmitry Adamushko
2006-08-30 13:18 ` Philippe Gerum
2006-08-30 16:03 ` Dmitry Adamushko
2006-08-30 16:20 ` Gilles Chanteperdrix
2006-08-30 13:29 ` Jan Kiszka
2006-08-30 17:10 ` Dmitry Adamushko
2006-08-30 17:25 ` Dmitry Adamushko
2006-08-31 8:12 ` Dmitry Adamushko
2006-08-30 17:33 ` Jan Kiszka
2006-08-30 17:55 ` Philippe Gerum
2006-08-30 18:50 ` Jan Kiszka
2006-08-30 20:47 ` Philippe Gerum
2006-08-30 20:55 ` Jan Kiszka
2006-08-30 20:59 ` Philippe Gerum
2006-08-30 21:01 ` Jan Kiszka
2006-08-30 21:58 ` Philippe Gerum
2006-08-31 8:31 ` [Xenomai-core] " Philippe Gerum
2006-08-31 19:11 ` Jan Kiszka
2006-08-31 19:31 ` Philippe Gerum
2006-08-31 19:49 ` Jan Kiszka
2006-08-31 19:48 ` Philippe Gerum
2006-08-31 20:02 ` Dmitry Adamushko
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=44F49A6C.5050603@domain.hid \
--to=jan.kiszka@domain.hid \
--cc=dmitry.adamushko@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.