On 7/31/19 7:06 AM, Peter Zijlstra wrote:
On Tue, Jul 30, 2019 at 06:06:02PM -0400, Gabriel Krisman Bertazi wrote:
This is a new futex operation, called FUTEX_WAIT_MULTIPLE, which allows
a thread to wait on several futexes at the same time, and be awoken by
any of them.  In a sense, it implements one of the features that was
supported by pooling on the old FUTEX_FD interface.

My use case for this operation lies in Wine, where we want to implement
a similar interface available in Windows, used mainly for event
handling.  The wine folks have an implementation that uses eventfd, but
it suffers from FD exhaustion (I was told they have application that go
to the order of multi-milion FDs), and higher CPU utilization.

So is multi-million the range we expect for @count ?


Not in Wine's case; in fact Wine has a hard limit of 64 synchronization primitives that can be waited on at once (which, with the current user-side code, translates into 65 futexes). The exhaustion just had to do with the number of primitives created; some programs seem to leak them badly.

Reply via email to