From: Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org>
To: Bill Gatliff <bgat@domain.hid>
Cc: xenomai@xenomai.org, xenomai@xenomai.org
Subject: [Xenomai-core] Re: [Xenomai-help] Xenomai v2.3.1
Date: Tue, 20 Mar 2007 18:34:03 +0100 [thread overview]
Message-ID: <46001B0B.5040603@domain.hid> (raw)
In-Reply-To: <460013C8.3050003@domain.hid>
Bill Gatliff wrote:
> Gilles Chanteperdrix wrote:
>
>>>Probably OT, but someone was complaining to me the other day that
>>>pthreads running on SCHED_FIFO/SCHED_RR that are blocked on mutexes
>>>don't release in priority order. This was on a stock 2.6.18 kernel,
>>>"recent glibc" (I didn't catch which version or config), ARM9 platform.
>>>
>>>First question: Is this actually true?
>>>
>>>Second question: Does Xenomai fix this? Do more recent kernel
>>>developments fix this?
>>>
>>>Point me at the appropriate RTFM or code if that's the appropriate
>>>answer. :)
>>>
>>>
>>
>>The appropriate RTFM is the POSIX spec [1]
>>
>>In short, it says: "If there are threads blocked on the mutex object
>>referenced by 'mutex' when pthread_mutex_unlock() is called, resulting
>>in the mutex becoming available, the scheduling policy shall determine
>>which thread shall acquire the mutex."
>>
>>So, the correct implementation is to release a mutex in priority order.
>>
>>
>
> Right, I'm fully aware of that (I teach a class on POSIX.1b from time to
> time).
>
> But this person insisted that things didn't work that way in a stock
> 2.6.18--- which was a complete surprise to me. Just wondering if anyone
> here had noticed or not.
>
> I suppose another possibility is that the "mutex" they were referring to
> was a kernel mutex used to implement blocking i/o in a driver, and not a
> userspace POSIX mutex. But I would expect that one to behave itself too...
Yet another possibility is that the pthreads that are believed to run in
SCHED_FIFO or SCHED_RR policy are not really running with one of these
policies. There is (or was, maybe it was fixed) a bug in the glibc:
setting scheduling parameters with pthread_attr_setsched* does not work.
Don't laugh, try it an call pthread_getschedparam from the created thread.
--
Gilles Chanteperdrix
next prev parent reply other threads:[~2007-03-20 17:34 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-03-20 8:39 [Xenomai-core] Xenomai v2.3.1 Philippe Gerum
2007-03-20 10:53 ` Gilles Chanteperdrix
2007-03-20 16:25 ` [Xenomai-core] Re: [Xenomai-help] " Bill Gatliff
2007-03-20 16:56 ` Gilles Chanteperdrix
2007-03-20 17:03 ` Bill Gatliff
2007-03-20 17:34 ` Gilles Chanteperdrix [this message]
2007-03-20 17:28 ` Jan Kiszka
2007-03-20 20:11 ` [Xenomai-core] " Gilles Chanteperdrix
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=46001B0B.5040603@domain.hid \
--to=gilles.chanteperdrix@xenomai.org \
--cc=bgat@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.