From: Rusty Russell <rusty@rustcorp.com.au>
To: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: lk@tantalophile.demon.co.uk, davidel@xmailserver.org,
linux-kernel@vger.kernel.org, linux-aio@kvack.org,
lse-tech@lists.sourceforge.net, torvalds@transmeta.com,
akpm@digeo.com
Subject: Re: Unifying epoll,aio,futexes etc. (What I really want from epoll)
Date: Fri, 1 Nov 2002 09:00:34 +1100 [thread overview]
Message-ID: <20021101090034.42e207e5.rusty@rustcorp.com.au> (raw)
In-Reply-To: <1036082758.8575.81.camel@irongate.swansea.linux.org.uk>
On 31 Oct 2002 16:45:58 +0000
Alan Cox <alan@lxorguk.ukuu.org.uk> wrote:
> What is hard is multiple futex waits and livelock for that. I think it
> can be done properly but I've not sat down and designed it all out - I
> wonder what Rusty thinks.
Hmm... Never thought about it. You mean an API like:
struct futex_set *futex_set_init();
struct futex_set *futex_set_add(struct futex_set *, struct futex *);
/* Returns futex obtained. */
struct futex *futex_set_wait(struct futex_set *);
I think a naive implementation of futex_set_wait would look like:
set = futex_set
try:
for each futex in set {
if (grab in userspace) {
close fds;
return with futex;
}
close old fd for futex if any
call FUTEX_FD to get fd notification of futex;
}
select on fds
set = fds which are ready
goto try
You could, of course, loop through the fast path once before making any
syscalls. Another optimization is to have FUTEX_FD reuse an existing fd
rather than requiring the close.
Not sure I get the point about livelock though: deadlock is possible if
apps seek multiple locks at once without care, of course.
Rusty.
--
there are those who do and those who hang on and you don't see too
many doers quoting their contemporaries. -- Larry McVoy
next prev parent reply other threads:[~2002-10-31 23:45 UTC|newest]
Thread overview: 117+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-10-28 19:14 [PATCH] epoll more scalable than poll Hanna Linder
2002-10-28 20:10 ` Hanna Linder
2002-10-28 20:56 ` Martin Waitz
2002-10-28 22:02 ` bert hubert
2002-10-28 22:15 ` bert hubert
2002-10-28 22:17 ` Davide Libenzi
2002-10-28 22:08 ` bert hubert
2002-10-28 22:12 ` [Lse-tech] " Shailabh Nagar
2002-10-28 22:37 ` Davide Libenzi
2002-10-28 22:29 ` Davide Libenzi
2002-10-28 22:58 ` and nicer too - " bert hubert
2002-10-28 23:23 ` Davide Libenzi
2002-10-28 23:44 ` Jamie Lokier
2002-10-29 0:02 ` Davide Libenzi
2002-10-29 1:51 ` Jamie Lokier
2002-10-29 5:06 ` Davide Libenzi
2002-10-29 11:20 ` Jamie Lokier
2002-10-30 0:16 ` Davide Libenzi
2002-10-29 0:03 ` bert hubert
2002-10-29 0:20 ` Davide Libenzi
2002-10-29 0:48 ` Jamie Lokier
2002-10-29 1:53 ` Jamie Lokier
2002-10-28 23:45 ` and nicer too - " John Gardiner Myers
2002-10-29 0:08 ` Davide Libenzi
2002-10-29 12:59 ` Martin Waitz
2002-10-29 15:19 ` bert hubert
2002-10-29 22:54 ` Martin Waitz
2002-10-30 2:24 ` Davide Libenzi
2002-10-30 19:38 ` Martin Waitz
2002-10-31 5:04 ` Davide Libenzi
2002-10-29 0:18 ` bert hubert
2002-10-29 0:32 ` Davide Libenzi
2002-10-29 0:40 ` bert hubert
2002-10-29 0:57 ` Davide Libenzi
2002-10-29 0:53 ` bert hubert
2002-10-29 1:13 ` Davide Libenzi
2002-10-29 1:08 ` [Lse-tech] " Hanna Linder
2002-10-29 1:39 ` Davide Libenzi
2002-10-29 2:05 ` Jamie Lokier
2002-10-29 2:44 ` Davide Libenzi
2002-10-29 4:01 ` [PATCH] Updated sys_epoll now with man pages Hanna Linder
2002-10-29 5:09 ` Andrew Morton
2002-10-29 5:28 ` [Lse-tech] " Randy.Dunlap
2002-10-29 5:47 ` Davide Libenzi
2002-10-29 5:41 ` Randy.Dunlap
2002-10-29 6:12 ` Davide Libenzi
2002-10-29 6:03 ` Randy.Dunlap
2002-10-29 6:23 ` Davide Libenzi
2002-10-29 14:59 ` Paul Larson
2002-10-29 5:31 ` Davide Libenzi
2002-10-29 7:34 ` Davide Libenzi
2002-10-29 11:04 ` bert hubert
2002-10-29 15:30 ` [Lse-tech] " Shailabh Nagar
2002-10-29 17:45 ` Davide Libenzi
2002-10-29 19:30 ` Hanna Linder
2002-10-29 19:49 ` Davide Libenzi
2002-10-29 13:09 ` and nicer too - Re: [PATCH] epoll more scalable than poll bert hubert
2002-10-29 21:25 ` Davide Libenzi
2002-10-29 21:23 ` Hanna Linder
2002-10-29 21:41 ` Davide Libenzi
2002-10-29 23:06 ` Hanna Linder
2002-10-29 23:14 ` [Lse-tech] " Randy.Dunlap
2002-10-29 23:25 ` Davide Libenzi
2002-10-29 1:47 ` Security critical race condition in epoll code John Gardiner Myers
2002-10-29 2:13 ` Davide Libenzi
2002-10-29 3:38 ` Davide Libenzi
2002-10-29 19:49 ` and nicer too - Re: [PATCH] epoll more scalable than poll John Gardiner Myers
2002-10-29 21:03 ` Davide Libenzi
2002-10-30 0:26 ` Jamie Lokier
2002-10-30 2:09 ` Davide Libenzi
2002-10-30 5:51 ` Davide Libenzi
2002-10-30 2:22 ` John Gardiner Myers
2002-10-30 3:51 ` Davide Libenzi
2002-10-31 2:07 ` John Gardiner Myers
2002-10-31 3:21 ` Davide Libenzi
2002-10-31 11:10 ` [Lse-tech] " Suparna Bhattacharya
2002-10-31 18:42 ` Davide Libenzi
2002-10-30 23:01 ` Jamie Lokier
2002-10-30 23:53 ` Davide Libenzi
2002-10-31 0:52 ` Jamie Lokier
2002-10-31 4:15 ` Davide Libenzi
2002-10-31 15:07 ` Jamie Lokier
2002-10-31 19:10 ` Davide Libenzi
2002-11-01 17:42 ` Dan Kegel
2002-11-01 17:45 ` Davide Libenzi
2002-11-01 18:41 ` Dan Kegel
2002-11-01 19:16 ` Jamie Lokier
2002-11-01 20:04 ` Charlie Krasic
2002-11-01 20:14 ` Jamie Lokier
2002-11-01 20:22 ` Mark Mielke
2002-10-31 15:41 ` Unifying epoll,aio,futexes etc. (What I really want from epoll) Jamie Lokier
2002-10-31 15:48 ` bert hubert
2002-10-31 16:45 ` Alan Cox
2002-10-31 22:00 ` Rusty Russell [this message]
2002-11-01 0:32 ` Jamie Lokier
2002-11-01 13:23 ` Alan Cox
2002-10-31 20:28 ` Davide Libenzi
2002-10-31 23:02 ` Jamie Lokier
2002-11-01 1:01 ` Davide Libenzi
2002-11-01 2:01 ` Jamie Lokier
2002-11-01 17:36 ` Davide Libenzi
2002-11-01 20:45 ` Jamie Lokier
2002-11-01 1:55 ` Matthew D. Hall
2002-11-01 2:54 ` Davide Libenzi
2002-11-01 18:18 ` Dan Kegel
2002-11-01 2:56 ` Jamie Lokier
2002-11-01 4:29 ` Mark Mielke
2002-11-01 4:59 ` Jamie Lokier
2002-11-01 23:27 ` John Gardiner Myers
2002-11-02 4:55 ` Mark Mielke
2002-11-02 15:41 ` Jamie Lokier
2002-11-05 18:15 ` pipe POLLOUT oddity John Gardiner Myers
2002-11-05 18:18 ` Benjamin LaHaise
2002-11-01 23:16 ` Unifying epoll,aio,futexes etc. (What I really want from epoll) John Gardiner Myers
2002-10-30 18:59 ` and nicer too - Re: [PATCH] epoll more scalable than poll Zach Brown
2002-10-30 19:25 ` Davide Libenzi
2002-10-31 16:54 ` Davide Libenzi
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=20021101090034.42e207e5.rusty@rustcorp.com.au \
--to=rusty@rustcorp.com.au \
--cc=akpm@digeo.com \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=davidel@xmailserver.org \
--cc=linux-aio@kvack.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lk@tantalophile.demon.co.uk \
--cc=lse-tech@lists.sourceforge.net \
--cc=torvalds@transmeta.com \
/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.