Messages in this thread | | | Subject | Re: Unifying epoll,aio,futexes etc. (What I really want from epoll) | From | Alan Cox <> | Date | 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/
| |