From: Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org>
To: rpm@xenomai.org, xenomai@xenomai.org
Subject: Re: [Xenomai-core] [Patch 5/7] Define new syscalls for the system skin
Date: Tue, 20 May 2008 00:44:39 +0200 [thread overview]
Message-ID: <18482.727.771660.333461@domain.hid> (raw)
In-Reply-To: <2ff1a98a0805190616v662c22ddgd63382221d721c8e@domain.hid>
Gilles Chanteperdrix wrote:
> On Mon, May 19, 2008 at 2:56 PM, Philippe Gerum <rpm@xenomai.org> wrote:
> > Gilles Chanteperdrix wrote:
> >> Philippe Gerum wrote:
> >> > Gilles Chanteperdrix wrote:
> >> > > As far as I understood, the user-space atomic operations, used to
> >> > > acquire a free mutex in user-space, are not part of the futex API. In
> >> > > our case, we are using xnarch_atomic_* operations to implement portably
> >> > > this user-space locking stuff. I think that even setting the bit saying
> >> > > that the mutex is currently owned is done in pthread_mutexes
> >> > > implementation, not in the Futex API.
> >> >
> >> > I would fully agree if the futex API did not define PI-based ops, which are
> >> > needed for proper real-time operations from userland. You will certainly agree
> >> > that PI implies that some kind of ownership exists; and because there can't be
> >> > more than a single owner in that case, you end up with an object that can't be
> >> > held by more than a single task. So you do have a mutex in disguise, whatever
> >> > the way to keep its state is (a bit, an integer, whatever). So there is stronger
> >> > semantics attached to that API than to simply manage an event notification scheme.
> >> >
> >> > Now, what remains is
> >> > > sys_futex(FUTEX_WAIT) and sys_futex(FUTEX_WAKE), this terribly looks like
> >> > > xnsync_sleep_on and xnsynch_wakeup_one_sleeper.
> >> > >
> >> >
> >> > Yes, here again I partially agree, except for a significant issue: xnsynch is a
> >> > stateless object (that's why we can use it for different syncobjs which are
> >> > totally unrelated in their semantics - mutex, queue, region, counting sems,
> >> > whatever). I was just wondering if we could make the *tex thingy a bit more
> >> > stateful to ease the job for the skins, just in case we would use it for mutexes
> >> > only. I have no immediate answer to this question, just asking -- this is my
> >> > contribution as a senior member of the peanut gallery.
> >>
> >> We can certainly implement an abstraction managing xnarch_atomic_t +
> >> xnsynch_t, however, it seems that we would have to re-factor all
> >> mutex/semaphores implementations to use this new abstraction. The
> >> current approach is to add an xnarch_atomic_cmpxchg in user-space, and
> >> fall back to an almost unchanged kernel-space support when it fails.
> >>
> >
> > Ok. Let's merge this as it is. Common code will emerge eventually if it happens
> > to make sense when plugging the feature into the native and VxWorks mutex support.
>
> Ok. I need a few more days though, to adapt it to other architectures than arm.
I changed my mind and commited the whole stuff. Instead of implementing
full atomic operations in user-space for other platforms than ARM, I
have left this work for others.
--
Gilles.
next prev parent reply other threads:[~2008-05-19 22:44 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-05-02 22:27 [Xenomai-core] [Patch 0/7] Posix skin user-space mutexes, second take Gilles Chanteperdrix
2008-05-02 22:30 ` [Xenomai-core] [Patch 1/7] Support for non cached memory mappings Gilles Chanteperdrix
2008-05-02 22:32 ` [Xenomai-core] [Patch 2/7] Define XNARCH_SHARED_HEAP_FLAGS Gilles Chanteperdrix
2008-05-02 22:33 ` [Xenomai-core] [Patch 3/7] Define more atomic operations in user-space Gilles Chanteperdrix
2008-05-02 22:34 ` [Xenomai-core] [Patch 4/7] Define ARM " Gilles Chanteperdrix
2008-05-02 22:35 ` [Xenomai-core] [Patch 5/7] Define new syscalls for the system skin Gilles Chanteperdrix
2008-05-02 22:36 ` [Xenomai-core] [Patch 6/7] Re-implementation of mutexes, kernel-space support Gilles Chanteperdrix
2008-05-02 22:38 ` [Xenomai-core] [Patch 7/7] Re-implementation of mutexes, user-space support Gilles Chanteperdrix
2008-05-18 16:42 ` Philippe Gerum
2008-05-18 17:05 ` Gilles Chanteperdrix
2008-05-18 17:29 ` Jan Kiszka
2008-05-18 17:41 ` Gilles Chanteperdrix
2008-05-18 17:52 ` Jan Kiszka
2008-05-18 18:09 ` Gilles Chanteperdrix
2008-05-18 18:56 ` Philippe Gerum
2008-05-19 22:49 ` Gilles Chanteperdrix
2008-05-20 6:53 ` Philippe Gerum
2008-05-20 7:07 ` Jan Kiszka
2008-05-20 7:23 ` Gilles Chanteperdrix
2008-05-18 16:40 ` [Xenomai-core] [Patch 5/7] Define new syscalls for the system skin Philippe Gerum
2008-05-18 17:21 ` Gilles Chanteperdrix
2008-05-18 18:37 ` Gilles Chanteperdrix
2008-05-18 19:10 ` Philippe Gerum
2008-05-18 19:38 ` Gilles Chanteperdrix
2008-05-18 21:52 ` Philippe Gerum
2008-05-18 22:52 ` Gilles Chanteperdrix
2008-05-19 12:56 ` Philippe Gerum
2008-05-19 13:16 ` Gilles Chanteperdrix
2008-05-19 22:44 ` Gilles Chanteperdrix [this message]
2008-05-05 16:33 ` [Xenomai-core] [Patch 4/7] Define ARM atomic operations in user-space Gilles Chanteperdrix
2008-05-05 16:39 ` Philippe Gerum
2008-05-05 16:44 ` Gilles Chanteperdrix
2008-05-18 16:30 ` [Xenomai-core] [Patch 1/7] Support for non cached memory mappings Philippe Gerum
2008-05-03 19:18 ` [Xenomai-core] [Patch 0/7] Posix skin user-space mutexes, second take 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=18482.727.771660.333461@domain.hid \
--to=gilles.chanteperdrix@xenomai.org \
--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.