From: Doug Siebert <dsiebert@divms.uiowa.edu>
To: linux-kernel@vger.kernel.org
Subject: Fast Userspace Mutexes (futex) vs. msem_*
Date: Fri, 8 Mar 2002 00:15:52 -0600 (CST) [thread overview]
Message-ID: <200203080615.g286Fqh24770@server.divms.uiowa.edu> (raw)
I'm a long-time lurker in linux-kernel, but the discussion about fast
userspace mutexes ("futexes") has piqued my interest. I made great
use of the msem_* (msem_init, msem_lock, msem_unlock) functions on HP-UX
in the mid 90s (HP-UX 9.01 and on) At the time, they were invaluable for
me, with 1000+ processes needing exclusive access to resources on a 50MHz
machine. Requiring a system call for this purpose would have been a major
performance hit (remember HP-UX's system calls are not nearly so light
weight as Linux's)
The direction that the futex implementation is going is looking a lot like
how they are implemented on HP-UX (as well as Tru64 and AIX) I am curious
though why the case of "what happens if the process holding the lock dies"
is considered unimportant by some people. It wouldn't be all that much
more work to "do it right" (IMHO) and handle this case. AFAIK, on HP-UX
the implementation kept a "locker id" and a linked list of waiters' lock
ids (to allow first come first served as well as handling the case of a
lock holder dying) There was an underlying system call that was made when
the userspace part in libc found the lock already held and waiting for the
lock was desired.
If the implementation does move further towards the msem_* standard, it
might make sense to just implement it as defined, and provide source
compatibility with existing applications on HP-UX, AIX, and Tru64 that
use it.
I'm not subscribed (I skim the hypermail archives on zork a couple times
a week, so please cc: me on comments for a faster response)
--
Douglas Siebert
douglas-siebert@uiowa.edu
next reply other threads:[~2002-03-08 6:16 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-03-08 6:15 Doug Siebert [this message]
2002-03-08 6:34 ` Davide Libenzi
2002-03-08 22:04 ` Edgar Toernig
2002-03-12 16:50 ` Bill Davidsen
2002-03-09 4:23 ` Rusty Russell
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=200203080615.g286Fqh24770@server.divms.uiowa.edu \
--to=dsiebert@divms.uiowa.edu \
--cc=linux-kernel@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®