Re: Unifying epoll,aio,futexes etc. (What I really want from epoll)

Alan Cox (alan@lxorguk.ukuu.org.uk)
01 Nov 2002 13:23:24 +0000


On Thu, 2002-10-31 at 22:00, Rusty Russell wrote:
> 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.

Think about 1000 futexes where one task wants to grab them all and other
tasks want any one of them - done wrongly at that point busy traffic
will starve the 1000 futex waiter.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/