All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jan Kiszka <jan.kiszka@domain.hid>
To: Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org>
Cc: xenomai-core <xenomai@xenomai.org>
Subject: Re: [Xenomai-core] Re: POSIX include problem
Date: Fri, 17 Mar 2006 02:26:51 +0100	[thread overview]
Message-ID: <441A105B.9070907@domain.hid> (raw)
In-Reply-To: <17433.46842.657384.406082@domain.hid>

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

Gilles Chanteperdrix wrote:
> Jan Kiszka wrote:
>  > ...
>  > I found this while trying Thomas Gleixner's cyclic test over the POSIX
>  > skin (http://www.tglx.de/projects/misc/cyclictest). After fixing a
>  > rather ugly bug in his code (missing mlockall) I ran into a yet unknown
>  > issue with the POSIX skin: the code just hangs when wrapped to Xenomai.
>  > 
>  > Compilation:
>  > gcc -o cyclictest cyclictest.c <posix-cflags> <posix-ldflags>
>  > 
>  > Invocation:
>  > cyclictest -n -p 99
>  > 
>  > Maybe its just real-time starvation (but the watchdog doesn't trigger,
>  > and I do not see why it should starve), maybe its a crash (will try to
>  > attach a serial console later). Anyway, it's an easy test case (and also
>  > a nice tool), so you may want to have a look as well.
> 
> A second, better guess: the created thread is not a Xenomai realtime
> thread, so never suspends (Xenomai calls return EPERM when not called
> from a real-time thread) and hangs. Replacing sched_setscheduler with
> pthread_setschedparam should solve this issue.

Haven't tried this yet, but I'm quite sure that this is the reason. Then
this must have been a classic Linux SCHED_FIFO lock-up.

> 
> I would not be surprised if, with NPTL, sched_setscheduler had an effect
> on the whole process, i.e. set the priority of all the threads in the
> process.
> 

From reading the POSIX spec, I would say the calling sched_setscheduler
multiple times in individual threads indicates a wrong usage, doesn't
it? And what NPTL does with it, specifically in the presence of multiple
threads, is a good questions...

Jan


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

      reply	other threads:[~2006-03-17  1:26 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-03-16 12:25 [Xenomai-core] POSIX include problem Jan Kiszka
2006-03-16 15:08 ` [Xenomai-core] " Gilles Chanteperdrix
2006-03-16 16:00 ` Gilles Chanteperdrix
2006-03-16 18:00   ` Jan Kiszka
2006-03-16 19:05     ` Gilles Chanteperdrix
2006-03-17  1:26       ` Jan Kiszka [this message]

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=441A105B.9070907@domain.hid \
    --to=jan.kiszka@domain.hid \
    --cc=gilles.chanteperdrix@xenomai.org \
    --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.