All of lore.kernel.org
 help / color / mirror / Atom feed
From: Philippe Gerum <rpm@xenomai.org>
To: Jan Kiszka <jan.kiszka@domain.hid>
Cc: xenomai@xenomai.org
Subject: Re: [Xenomai-help] kernel oopses when killing realtime task
Date: Thu, 28 Oct 2010 07:17:14 +0200	[thread overview]
Message-ID: <1288243034.1816.14.camel@domain.hid> (raw)
In-Reply-To: <4CC72D27.3010607@domain.hid>

On Tue, 2010-10-26 at 21:33 +0200, Jan Kiszka wrote:
> Am 26.10.2010 07:22, Jan Kiszka wrote:
> > Will come up with two patches for stable, one for I-pipe and one for
> > Xenomai, later today. Then we can discuss which cases I'm missing.
> 
> While meditating over my approach (which turned out to be less trivial
> as expected - of course), I also reconsidered your current patches. The
> concerns I had (forwarding of spurious IRQ to Linux) turned out to be
> harmless (Linux will ignore such few spurious events).
> 

That is not even an issue if you consider the sequence to be
xnarch_disable_irq then ipipe_control (new version, doing a critical
entry to flip the irq mode).

> Still, the approach to sync via shutting down the line for the current
> domain before xnintr_irq_detach doesn't work for us. It only works if
> xnintr_irq_detach actually detaches from the line, but it breaks if
> there are users remaining.
> 
> We need intrlock to check if we are the last user while removing
> ourselves from the list. And we cannot postpone line detaching after the
> critical section as we may otherwise race with the next registration on
> that line. IOW, I don't see how to solve the issue without moving the
> drain after the detach and making the detach safer instead.
> 
> Do you agree?
> 

I agree this is not trivial, for sure. To keep things simple, I would
introduce a new "teardown" flag to freeze the descriptor, thus avoiding
further attachments, while xnintr_detach can probe the shared list for
lingering users, and eventually call xnarch_disable_irq
+xnarch_ignore_irq+xnarch_release_irq in sequence with all locks
dropped, if empty.

The only adverse effect I can see ATM would be some concurrent caller of
xnintr_detach() blocked on the teardown flag on another CPU, albeit it
_could_ have joined the bandwagon, attaching the irq, in case the shared
list proved to remain active (and thus xnarch_release_irq was not
called). But this may also look like a simple way to prevent live
locking of interrupt descriptors. YMMV.

> Jan
> 

-- 
Philippe.




  reply	other threads:[~2010-10-28  5:17 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-10-07 11:57 [Xenomai-help] kernel oopses when killing realtime task Pavel Machek
2010-10-07 12:11 ` Gilles Chanteperdrix
2010-10-07 13:00   ` Gilles Chanteperdrix
2010-10-07 12:32 ` Jan Kiszka
2010-10-08  7:01   ` Pavel Machek
2010-10-08  7:20     ` Gilles Chanteperdrix
2010-10-08  8:17     ` Philippe Gerum
2010-10-08  8:41       ` Jan Kiszka
2010-10-08  8:57         ` Philippe Gerum
2010-10-08  9:00           ` Philippe Gerum
2010-10-08  9:41     ` Philippe Gerum
2010-10-13  9:03       ` Pavel Machek
2010-10-13  9:16         ` Philippe Gerum
2010-10-13  9:26           ` Pavel Machek
2010-10-13 14:52             ` Philippe Gerum
2010-10-25 16:48               ` Philippe Gerum
2010-10-25 18:10                 ` Jan Kiszka
2010-10-25 19:08                   ` Philippe Gerum
2010-10-25 19:11                     ` Philippe Gerum
2010-10-25 19:15                     ` Jan Kiszka
2010-10-25 19:20                       ` Philippe Gerum
2010-10-25 19:22                         ` Jan Kiszka
2010-10-25 21:12                           ` Philippe Gerum
2010-10-25 21:22                             ` Jan Kiszka
2010-10-25 21:40                               ` Philippe Gerum
2010-10-25 21:47                                 ` Jan Kiszka
2010-10-26  4:43                                   ` Philippe Gerum
2010-10-26  5:22                                     ` Jan Kiszka
2010-10-26 19:33                                       ` Jan Kiszka
2010-10-28  5:17                                         ` Philippe Gerum [this message]
2010-10-28  7:31                                           ` Jan Kiszka
2010-10-28  7:38                                             ` Jan Kiszka
2010-10-28  7:46                                             ` Philippe Gerum
2010-11-07 15:15                                               ` Philippe Gerum
2010-11-07 16:22                                                 ` Jan Kiszka
2010-11-07 16:55                                                   ` Philippe Gerum
2010-11-07 16:59                                                   ` Philippe Gerum
2010-11-07 17:19                                                   ` Philippe Gerum
2010-11-09  8:01                                                   ` Jan Kiszka
2010-11-09  8:26                                                     ` Philippe Gerum
2010-11-09  8:39                                                       ` Jan Kiszka
2010-11-09  9:36                                                         ` Philippe Gerum
2010-11-09 13:12                                                           ` Jan Kiszka
2010-11-12  8:48                                                             ` Philippe Gerum
2010-11-12  9:14                                                               ` Jan Kiszka
2010-11-12 13:57                                                                 ` Philippe Gerum
2010-11-12 14:30                                                                   ` Jan Kiszka
2010-11-12 17:42                                                                     ` Philippe Gerum
2010-11-12 18:42                                                                       ` Jan Kiszka
2010-11-14 21:28                                                                         ` Philippe Gerum
2010-10-07 14:07 ` 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=1288243034.1816.14.camel@domain.hid \
    --to=rpm@xenomai.org \
    --cc=jan.kiszka@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.