From: Davide Libenzi <davidel@xmailserver.org>
To: linux-ia64@vger.kernel.org
Subject: RE: [Linux-ia64] Re: web page on O(1) scheduler
Date: Sat, 24 May 2003 00:20:13 +0000 [thread overview]
Message-ID: <marc-linux-ia64-105590723706025@msgid-missing> (raw)
In-Reply-To: <marc-linux-ia64-105590723705966@msgid-missing>
On Fri, 23 May 2003, Boehm, Hans wrote:
> Pthread_spin_lock() under the NPTL version in RH9 does basically what my
> custom locks do in the uncontested case, aside from the function call.
> But remember that this began with a discussion about whether it was
> reasonable for user locking code to explicitly yield rather than relying
> on pthreads to suspend the thread. I don't think pthread_spin_lock is
> relevant in this context, for two reasons:
>
> 1) At least the RH9 version of pthread_spin_lock in NPTL literally spins
> and makes no attempt to yield or block. This only makes sense at user
> level if you are 100% certain that the processors won't be
> overcommitted. Otherwise there is little to be lost by blocking once you
> have spun for sufficiently long. You could use pthread_spin_trylock and
> block explicitly, but that gets us back to custom blocking code.
Yes, that would be a spinlock. Your code was basically a spinlock that
instead of spinning was doing abort() in contention case. Again, you
measured two different things. Even if the pthread mutex does something
very simple like :
spinlock(mtx->lock);
while (mtx->busy) {
spinunlock(mtx->lock);
waitforunlocks();
spinlock(mtx->lock);
}
mtx->busy++;
spinunlock(mtx->lock);
Only the fact that this code likely reside inside a deeper call lever will
make you pay in a tight loop like your.
> 2) AFAICT, pthread_spin_lock is currently a little too bleeding edge to
> be widely used. I tried to time it, but failed. Pthread.h doesn't
> include the declaration for pthread_spin_lock_t by default, at least not
> yet. It doesn't seem to have a Linux man page, yet. I tried to define
> the magic macro to get it declared, but that broke something else.
$ gcc -D_GNU_SOURCE ...
- Davide
next prev parent reply other threads:[~2003-05-24 0:20 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-05-21 9:01 [Linux-ia64] Re: web page on O(1) scheduler Arjan van de Ven
2003-05-21 9:26 ` Mike Galbraith
2003-05-21 9:30 ` Mike Galbraith
2003-05-21 10:40 ` Duraid Madina
2003-05-21 10:43 ` Christoph Hellwig
2003-05-21 15:18 ` David Mosberger
2003-05-21 17:56 ` David Mosberger
2003-05-21 20:46 ` Mike Galbraith
2003-05-22 0:38 ` Rik van Riel
2003-05-22 5:52 ` Mike Galbraith
2003-05-22 9:52 ` Mike Galbraith
2003-05-22 16:25 ` Mike Galbraith
2003-05-22 17:58 ` David Mosberger
2003-05-23 1:07 ` Hans Boehm
2003-05-23 8:30 ` Arjan van de Ven
2003-05-23 17:48 ` Boehm, Hans
2003-05-23 18:04 ` Davide Libenzi
2003-05-24 0:10 ` Boehm, Hans
2003-05-24 0:20 ` Davide Libenzi [this message]
2003-05-24 0:53 ` Boehm, Hans
2003-05-24 5:38 ` Davide Libenzi
2003-05-24 14:43 ` Davide Libenzi
2003-05-24 16:50 ` Hans Boehm
2003-05-24 21:41 ` Davide Libenzi
2003-05-25 9:17 ` Mike Galbraith
-- strict thread matches above, loose matches on Subject: below --
2003-05-24 0:53 Boehm, Hans
2003-05-24 5:38 ` Davide Libenzi
2003-05-24 14:43 ` Davide Libenzi
2003-05-24 0:10 Boehm, Hans
2003-05-24 0:20 ` Davide Libenzi
2003-05-23 17:48 Boehm, Hans
2003-05-23 18:04 ` Davide Libenzi
2003-05-21 6:49 David Mosberger
2003-05-21 9:01 ` Arjan van de Ven
2003-05-21 10:40 ` [Linux-ia64] " Duraid Madina
2003-05-21 10:43 ` Christoph Hellwig
2003-05-21 13:12 ` Arjan van de Ven
2003-05-21 13:51 ` Olivier Galibert
2003-05-28 22:12 ` Bill Davidsen
[not found] ` <Pine.LNX.3.96.1030528180909.21414B-100000@gatekeeper.tmr.c om>
2003-05-29 5:59 ` Mike Galbraith
2003-06-02 8:05 ` Ingo Molnar
2003-06-04 4:07 ` Bill Davidsen
[not found] ` <Pine.LNX.4.44.0306020949520.3375-100000@localhost.localdom ain>
2003-06-02 13:51 ` Mike Galbraith
2003-06-04 3:52 ` Bill Davidsen
2003-06-04 4:55 ` David Schwartz
[not found] ` <Pine.LNX.3.96.1030603234616.16495B-100000@gatekeeper.tmr.c om>
2003-06-04 7:13 ` Mike Galbraith
2003-06-04 15:30 ` Jan Harkes
2003-05-21 19:18 ` Duraid Madina
2003-05-21 20:03 ` Helge Hafting
2003-05-21 22:59 ` Alan Cox
2003-05-23 1:07 ` Hans Boehm
2003-05-23 8:30 ` Arjan van de Ven
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=marc-linux-ia64-105590723706025@msgid-missing \
--to=davidel@xmailserver.org \
--cc=linux-ia64@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 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.