From: Davi Arnaut <davi@haxent.com.br>
To: Ulrich Drepper <drepper@gmail.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
Davide Libenzi <davidel@xmailserver.org>,
Linus Torvalds <torvalds@linux-foundation.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [patch 14/22] pollfs: pollable futex
Date: Wed, 02 May 2007 14:05:51 -0300 [thread overview]
Message-ID: <4638C4EF.1030302@haxent.com.br> (raw)
In-Reply-To: <a36005b50705020946x6cc1cb96r9ddd2b364ba168d7@mail.gmail.com>
Ulrich Drepper wrote:
> On 5/2/07, Davi Arnaut <davi@haxent.com.br> wrote:
>> It's quite easy to implement this scheme by write()ing the futexes all
>> at once but that would break the one futex per fd association. For
>> atomicity: if one of the futexes can't be queued, we would rollback
>> (unqueue) the others.
>>
>> Sounds sane?
>
> I don't know how you use "unqueue" in this context. If a queued futex
> is one which is /locked/ by te call, then yes, this is the semantics
> needed. Atomically locking a number of futexes means that if one of
> the set cannot be locked all operations done to lock the others have
> to be undone. It's an all-or-nothing situation.
The waits are queued, thus then can be "unqueued". It's quite simple to
extend futex_wait_queue() to support this, but again you are thinking of
locks while what I want is fast events.
> Locking is not as easy as you might think, though. For non-PI futexes
> there is deliberately no protocol in place describing what "locked"
> means. The locking operation has to be customizable. This is what
> the FUTEX_OP_* stuff is about.
Events are simple. A event is either signaled or not. A futex value 0 means
not signaled, 1+ signaled.
> And you wrote that currently each futex needs its own file descriptor.
> So this would have to be changed, too.
If it's really worth, I have no problem with it.
--
Davi Arnaut
next prev parent reply other threads:[~2007-05-02 17:05 UTC|newest]
Thread overview: 71+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-05-02 5:22 [patch 00/22] pollfs: filesystem abstraction for pollable objects Davi Arnaut
2007-05-02 5:22 ` [patch 01/22] pollfs: kernel-side API header Davi Arnaut
2007-05-02 5:22 ` [patch 02/22] pollfs: file system operations Davi Arnaut
2007-05-02 5:22 ` [patch 03/22] pollfs: asynchronously wait for a signal Davi Arnaut
2007-05-02 5:22 ` [patch 04/22] pollfs: pollable signal Davi Arnaut
2007-05-02 5:22 ` [patch 05/22] pollfs: pollable signal compat code Davi Arnaut
2007-05-02 5:22 ` [patch 06/22] pollfs: export the plsignal system call Davi Arnaut
2007-05-02 5:22 ` [patch 07/22] pollfs: x86, wire up " Davi Arnaut
2007-05-02 5:22 ` [patch 08/22] pollfs: x86_64, " Davi Arnaut
2007-05-02 5:22 ` [patch 09/22] pollfs: pollable hrtimers Davi Arnaut
2007-05-02 21:16 ` Thomas Gleixner
2007-05-02 23:00 ` Davi Arnaut
2007-05-02 5:22 ` [patch 10/22] pollfs: export the pltimer system call Davi Arnaut
2007-05-02 5:22 ` [patch 11/22] pollfs: x86, wire up " Davi Arnaut
2007-05-02 5:22 ` [patch 12/22] pollfs: x86_64, " Davi Arnaut
2007-05-02 5:22 ` [patch 13/22] pollfs: asynchronous futex wait Davi Arnaut
2007-05-02 5:22 ` [patch 14/22] pollfs: pollable futex Davi Arnaut
2007-05-02 5:54 ` Eric Dumazet
2007-05-02 6:16 ` Davi Arnaut
2007-05-02 6:39 ` Eric Dumazet
2007-05-02 6:54 ` Davi Arnaut
2007-05-02 7:11 ` Davi Arnaut
2007-05-02 7:40 ` Ulrich Drepper
2007-05-02 7:55 ` Eric Dumazet
2007-05-02 8:08 ` Ulrich Drepper
2007-05-02 8:49 ` Eric Dumazet
2007-05-02 16:39 ` Ulrich Drepper
2007-05-02 16:59 ` Davi Arnaut
2007-05-02 17:10 ` Ulrich Drepper
2007-05-02 17:29 ` Davide Libenzi
2007-05-02 17:53 ` Ulrich Drepper
2007-05-02 18:21 ` Davide Libenzi
2007-05-03 13:46 ` Ulrich Drepper
2007-05-03 18:24 ` Davide Libenzi
2007-05-03 19:03 ` Ulrich Drepper
2007-05-03 22:14 ` Davide Libenzi
2007-05-04 15:28 ` Ulrich Drepper
2007-05-04 19:15 ` Davide Libenzi
2007-05-04 19:20 ` 2.6.20.4 / 2.6.21.1 AT91SAM9260-EK oops Ryan Ordway
2007-05-04 23:38 ` [patch 14/22] pollfs: pollable futex Ulrich Drepper
2007-05-05 18:54 ` Davide Libenzi
2007-05-06 7:50 ` Ulrich Drepper
2007-05-06 19:47 ` Davide Libenzi
2007-05-06 19:54 ` Andrew Morton
2007-05-06 20:18 ` Davide Libenzi
2007-05-06 21:57 ` Davi Arnaut
2007-05-07 5:33 ` Ulrich Drepper
2007-05-07 5:46 ` Ulrich Drepper
2007-05-02 17:37 ` Davi Arnaut
2007-05-02 17:49 ` Ulrich Drepper
2007-05-02 18:05 ` Davi Arnaut
2007-05-03 13:40 ` Ulrich Drepper
2007-05-02 12:20 ` Davi Arnaut
2007-05-02 12:39 ` Davi Arnaut
2007-05-02 16:46 ` Ulrich Drepper
2007-05-02 17:05 ` Davi Arnaut [this message]
2007-05-02 5:22 ` [patch 15/22] pollfs: export the plfutex system call Davi Arnaut
2007-05-02 5:22 ` [patch 16/22] pollfs: x86, wire up " Davi Arnaut
2007-05-02 5:22 ` [patch 17/22] pollfs: x86_64, " Davi Arnaut
2007-05-02 5:22 ` [patch 18/22] pollfs: check if a AIO event ring is empty Davi Arnaut
2007-05-02 5:22 ` [patch 19/22] pollfs: pollable aio Davi Arnaut
2007-05-02 5:22 ` [patch 20/22] pollfs: export the plaio system call Davi Arnaut
2007-05-02 5:22 ` [patch 21/22] pollfs: x86, wire up " Davi Arnaut
2007-05-02 5:22 ` [patch 22/22] pollfs: x86_64, " Davi Arnaut
2007-05-02 6:05 ` [patch 00/22] pollfs: filesystem abstraction for pollable objects Andrew Morton
2007-05-02 17:28 ` Davide Libenzi
2007-05-02 17:47 ` Davi Arnaut
2007-05-02 18:23 ` Davide Libenzi
2007-05-02 18:50 ` Davi Arnaut
2007-05-02 19:42 ` Davide Libenzi
2007-05-02 20:11 ` Davi Arnaut
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=4638C4EF.1030302@haxent.com.br \
--to=davi@haxent.com.br \
--cc=akpm@linux-foundation.org \
--cc=davidel@xmailserver.org \
--cc=drepper@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@linux-foundation.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.