From: Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org>
To: rpm@xenomai.org
Cc: Markus Osterried <Markus.Osterried@domain.hid>,
xenomai@xenomai.org, Thomas Necker <Thomas.Necker@domain.hid>
Subject: Re: Antwort: Re: [Xenomai-core] Questions about pSOS task mode and task priority
Date: Wed, 31 Jan 2007 09:55:17 +0100 [thread overview]
Message-ID: <45C05975.3060900@domain.hid> (raw)
In-Reply-To: <1170204016.21219.49.camel@domain.hid>
Philippe Gerum wrote:
> On Mon, 2007-01-29 at 14:25 +0100, Gilles Chanteperdrix wrote:
>
>>Philippe Gerum wrote:
>>
>>>On Fri, 2007-01-26 at 18:16 +0100, Thomas Necker wrote:
>>>
>>>
>>>>So it clearly states that a non-preemtible task may block (and
>>>>rescheduling occurs in
>>>>this case).
>>>
>>>
>>>Ok, so this is a must fix. Will do. Thanks for reporting.
>>
>>I had a look at the OSEK specification, it also has non-preemptible
>>tasks. So, I guess we should add an xnpod_locked_schedule that simply does
>>
>>if (xnthread_test_state(xnpod_current_sched()->runthread, XNLOCK)) {
>> xnpod_unlock_sched();
>> xnpod_lock_sched();
>>} else
>> xnpod_schedule();
>>
>>and call this xnpod_locked_schedule() instead of xnpod_schedule() in
>>these skins.
>
>
> The more I think of it, the more it becomes obvious that the current
> implementation of the scheduler locks is uselessly restrictive.
> Actually, the only thing we gain from not allowing threads to block
> while holding such kind of lock is the opportunity to panic at best if
> the debug switch is on, or to go south badly if not.
>
> Even the pattern above would not solve the issue in fact, because things
> like xnsynch_sleep_on() which fire a rescheduling call would have to
> either get a special argument telling us about the policy in this
> matter, or forcibly unlock the scheduler behind the curtains before
> calling xnpod_suspend() internally. While we are at it, we would be
> better off incorporating the latter at the core, and assume that
> callers/skins that do _not_ want to allow sleeping schedlocks did the
> proper sanity checks to prevent this before running the rescheduling
> procedure. Other would just benefit from the feature.
>
> In short, the following patch against 2.3.0 stock fixes the issue,
> allowing threads to block while holding the scheduler lock.
Ok, but this means that the skins which use XNLOCK with the previous
meaning need fixing.
--
Gilles Chanteperdrix
next prev parent reply other threads:[~2007-01-31 8:55 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-01-26 17:16 Antwort: Re: [Xenomai-core] Questions about pSOS task mode and task priority Thomas Necker
2007-01-26 17:26 ` Philippe Gerum
2007-01-29 13:25 ` Gilles Chanteperdrix
2007-01-29 14:53 ` Philippe Gerum
2007-01-30 7:49 ` [Xenomai-core] Xenomai Bits on MIPS somshekar kadam
2007-01-30 9:21 ` Jan Kiszka
2007-01-31 0:40 ` Antwort: Re: [Xenomai-core] Questions about pSOS task mode and task priority Philippe Gerum
2007-01-31 8:55 ` Gilles Chanteperdrix [this message]
2007-01-31 9:10 ` Philippe Gerum
2007-01-31 9:28 ` Gilles Chanteperdrix
2007-01-31 10:24 ` Philippe Gerum
2007-01-31 10:26 ` Jan Kiszka
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=45C05975.3060900@domain.hid \
--to=gilles.chanteperdrix@xenomai.org \
--cc=Markus.Osterried@domain.hid \
--cc=Thomas.Necker@domain.hid \
--cc=rpm@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.