From: Jan Kiszka <jan.kiszka@domain.hid>
To: Philippe Gerum <rpm@xenomai.org>
Cc: xenomai@xenomai.org, Tschaeche IT-Services <services@domain.hid>
Subject: Re: [Xenomai-core] [PATCH] Mayday support
Date: Thu, 24 Jun 2010 14:05:41 +0200 [thread overview]
Message-ID: <4C234A15.2030708@domain.hid> (raw)
In-Reply-To: <1276080083.18906.52.camel@domain.hid>
Philippe Gerum wrote:
> I've toyed a bit to find a generic approach for the nucleus to regain
> complete control over a userland application running in a syscall-less
> loop.
>
> The original issue was about recovering gracefully from a runaway
> situation detected by the nucleus watchdog, where a thread would spin in
> primary mode without issuing any syscall, but this would also apply for
> real-time signals pending for such a thread. Currently, Xenomai rt
> signals cannot preempt syscall-less code running in primary mode either.
>
> The major difference between the previous approaches we discussed about
> and this one, is the fact that we now force the runaway thread to run a
> piece of valid code that calls into the nucleus. We do not force the
> thread to run faulty code or at a faulty address anymore. Therefore, we
> can reuse this feature to improve the rt signal management, without
> having to forge yet-another signal stack frame for this.
>
> The code introduced only fixes the watchdog related issue, but also does
> some groundwork for enhancing the rt signal support later. The
> implementation details can be found here:
> http://git.xenomai.org/?p=xenomai-rpm.git;a=commit;h=4cf21a2ae58354819da6475ae869b96c2defda0c
>
> The current mayday support is only available for powerpc and x86 for
> now, more will come in the next days. To have it enabled, you have to
> upgrade your I-pipe patch to 2.6.32.15-2.7-00 or 2.6.34-2.7-00 for x86,
> 2.6.33.5-2.10-01 or 2.6.34-2.10-00 for powerpc. That feature relies on a
> new interface available from those latest patches.
>
> The current implementation does not break the 2.5.x ABI on purpose, so
> we could merge it into the stable branch.
>
> We definitely need user feedback on this. Typically, does arming the
> nucleus watchdog with that patch support in, properly recovers from your
> favorite "get me out of here" situation? TIA,
>
> You can pull this stuff from
> git://git.xenomai.org/xenomai-rpm.git, queue/mayday branch.
>
I've retested the feature as it's now in master, and it has one
remaining problem: If you run the cpu hog under gdb control and try to
break out of the while(1) loop, this doesn't work before the watchdog
expired - of course. But if you send the break before the expiry (or hit
a breakpoint), something goes wrong. The Xenomai task continues to spin,
and there is no chance to kill its process (only gdb).
# cat /proc/xenomai/sched
CPU PID CLASS PRI TIMEOUT TIMEBASE STAT NAME
0 0 idle -1 - master RR ROOT/0
1 0 idle -1 - master R ROOT/1
0 6120 rt 99 - master Tt cpu-hog
# cat /proc/xenomai/stat
CPU PID MSW CSW PF STAT %CPU NAME
0 0 0 0 0 00500088 0.0 ROOT/0
1 0 0 0 0 00500080 99.7 ROOT/1
0 6120 0 1 0 00342180 100.0 cpu-hog
0 0 0 21005 0 00000000 0.0 IRQ3340: [timer]
1 0 0 35887 0 00000000 0.3 IRQ3340: [timer]
Jan
--
Siemens AG, Corporate Technology, CT T DE IT 1
Corporate Competence Center Embedded Linux
next prev parent reply other threads:[~2010-06-24 12:05 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-06-02 17:19 [Xenomai-core] [RFC] Break out of endless user space loops Jan Kiszka
2010-06-02 17:30 ` Gilles Chanteperdrix
2010-06-03 6:55 ` Jan Kiszka
2010-06-03 8:27 ` Philippe Gerum
2010-06-03 8:47 ` Jan Kiszka
2010-06-03 9:56 ` Philippe Gerum
2010-06-03 10:18 ` Jan Kiszka
2010-06-03 10:47 ` Philippe Gerum
2010-06-03 10:52 ` Philippe Gerum
2010-06-03 10:59 ` Jan Kiszka
2010-06-02 20:58 ` Philippe Gerum
2010-06-03 6:56 ` Jan Kiszka
2010-06-09 10:41 ` [Xenomai-core] [PATCH] Mayday support (was: Re: [RFC] Break out of endless user space loops) Philippe Gerum
2010-06-09 13:38 ` [Xenomai-help] " Tschaeche IT-Services
2010-06-09 14:01 ` Philippe Gerum
2010-06-09 18:11 ` Tschaeche IT-Services
2010-06-18 23:11 ` [Xenomai-core] " Philippe Gerum
2010-06-24 9:22 ` [Xenomai-help] " Tschaeche IT-Services
2010-06-24 9:34 ` [Xenomai-core] [PATCH] Mayday support Jan Kiszka
2010-06-24 10:28 ` [Xenomai-core] [PATCH] Mayday support (was: Re: [RFC] Break out of endless user space loops) Philippe Gerum
2010-06-24 12:05 ` Jan Kiszka [this message]
2010-06-27 16:01 ` [Xenomai-core] [PATCH] Mayday support Philippe Gerum
2010-06-28 14:06 ` Jan Kiszka
2010-06-28 14:12 ` Philippe Gerum
2010-07-06 15:44 ` Philippe Gerum
2010-07-06 15:54 ` Jan Kiszka
2010-07-06 16:41 ` Philippe Gerum
2010-07-06 17:10 ` Jan Kiszka
2010-08-20 12:32 ` Jan Kiszka
2010-08-20 14:00 ` Philippe Gerum
2010-08-20 14:06 ` Jan Kiszka
2010-08-20 14:20 ` 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=4C234A15.2030708@domain.hid \
--to=jan.kiszka@domain.hid \
--cc=rpm@xenomai.org \
--cc=services@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.