From: Martin Wirth <martin.wirth@dlr.de>
To: mingo <mingo@elte.hu>,
linux-kernel@vger.kernel.org, rusty@rustcorp.com.au
Subject: Re: [patch] futex requeueing feature, futex-requeue-2.5.69-D3
Date: Thu, 22 May 2003 13:23:05 +0200 [thread overview]
Message-ID: <3ECCB319.4060706@dlr.de> (raw)
Ingo Molnar wrote:
>all that is needed now is some actual review of the new APIs from the
>conceptual angle (i've done that and i think they are okay, but more
>eyes see more), so that we make sure these are good and we wont need to
>discard any aspect of them anytime soon.
What about adding an u32 flags field to each one of the new futex
sys_calls. This gives you more freedom for future extensions without
changing the API again. Possible uses may be:
- Specify the futexes to be mm-local: By using the pair mm* and vaddr as
key it is possible to have process local futexes living on the same
hash with the following advantages:
1. no page_table lock contention (I implemented mm-local futexes
for my application after I noticed long latencies on SMP where a
high prio tasks spun in futex_wake while another task was doing
mmap/munmap on a second processor).
2. no vcache pollution (I guess 99% of all futexes will not be in
shared memory)
3. Slightly faster, since no page pinning is needed
- Specify queueing or unqueueing in priority order
Martin
P.S.
By the way, your latest futex patch still contains the bogus
if (!list_empty(&q.list)) conditional, that's always true since
you hold the locks at this point and no one can have removed us
from the list:
> add_wait_queue(&q.waiters, &wait);
> set_current_state(TASK_INTERRUPTIBLE);
>- if (!list_empty(&q.list))
>+ if (!list_empty(&q.list)) {
>+ unlock_futex_mm();
> time = schedule_timeout(time);
>+ }
Of course the test would be (and was) pretty necessary if you drop the
locks before the get_user(...) call. And I must admit that I still
can't see why you need to hold the locks across get_user. Even if it's
save to do so at least every automatic code checker will bark at this point.
next reply other threads:[~2003-05-22 11:10 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-05-22 11:23 Martin Wirth [this message]
2003-05-22 11:34 ` [patch] futex requeueing feature, futex-requeue-2.5.69-D3 Ingo Molnar
2003-05-22 12:04 ` William Lee Irwin III
[not found] <3ECCB319.4060706@dlr.de.suse.lists.linux.kernel>
2003-05-22 11:38 ` Andi Kleen
[not found] <3ECAC2AE.8090401@redhat.com>
2003-05-21 2:34 ` Rusty Russell
2003-05-21 9:48 ` Ingo Molnar
2003-05-21 10:24 ` Christoph Hellwig
2003-05-22 0:30 ` Rusty Russell
2003-05-22 9:15 ` Ingo Molnar
2003-05-22 10:35 ` Rusty Russell
-- strict thread matches above, loose matches on Subject: below --
2003-05-19 9:31 Ingo Molnar
2003-05-19 10:10 ` Christoph Hellwig
2003-05-19 10:16 ` Ingo Molnar
2003-05-19 11:49 ` Christoph Hellwig
2003-05-20 0:08 ` Rusty Russell
2003-05-20 0:31 ` Valdis.Kletnieks
2003-05-19 10:23 ` Andrew Morton
2003-05-20 0:04 ` Rusty Russell
2003-05-20 0:40 ` Ulrich Drepper
2003-05-20 1:46 ` Rusty Russell
2003-05-20 2:11 ` Ulrich Drepper
2003-05-20 6:27 ` Ingo Molnar
2003-05-20 6:56 ` Christoph Hellwig
2003-05-20 8:57 ` Rusty Russell
2003-05-20 9:03 ` Ingo Molnar
2003-05-20 9:51 ` Christoph Hellwig
2003-05-20 15:46 ` Linus Torvalds
2003-05-20 9:12 ` Ingo Oeser
2003-05-20 15:41 ` Linus Torvalds
2003-05-20 8:55 ` Rusty Russell
2003-05-20 6:19 ` Ingo Molnar
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=3ECCB319.4060706@dlr.de \
--to=martin.wirth@dlr.de \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=rusty@rustcorp.com.au \
/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.