* Re: [RFC PATCH v2 00/13] Add futex2 syscall [not found] <[email protected]> @ 2021-03-07 11:34 ` Stefan Metzmacher 2021-03-07 11:56 ` Daurnimator 2021-03-08 11:11 ` David Laight 0 siblings, 2 replies; 5+ messages in thread From: Stefan Metzmacher @ 2021-03-07 11:34 UTC (permalink / raw) To: André Almeida, Thomas Gleixner, Ingo Molnar, Peter Zijlstra, Darren Hart, linux-kernel, Steven Rostedt, Sebastian Andrzej Siewior Cc: kernel, krisman, pgriffais, z.figura12, joel, malteskarupke, linux-api, fweimer, libc-alpha, linux-kselftest, shuah, acme, corbet, io-uring Hi André, > ** The wait on multiple problem > > The use case lies in the Wine implementation of the Windows NT interface > WaitMultipleObjects. This Windows API function allows a thread to sleep > waiting on the first of a set of event sources (mutexes, timers, signal, > console input, etc) to signal. With that in mind would it be good to have some interaction with epoll (and similar calls)? Instead of having a blocked futex_waitv() waiting on an fd (maybe a generic eventfd() or a new futex2fd()) would be a better interface? Or instead introduce an IORING_OP_FUTEX2_WAITV? Then the futex_waitv logic wait in an io-wq kernel thread... I guess the io_uring way would mean we could have that in mind as future addition, which can be implemented later... metze ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [RFC PATCH v2 00/13] Add futex2 syscall 2021-03-07 11:34 ` [RFC PATCH v2 00/13] Add futex2 syscall Stefan Metzmacher @ 2021-03-07 11:56 ` Daurnimator 2021-03-08 11:52 ` Stefan Metzmacher 2021-03-08 11:11 ` David Laight 1 sibling, 1 reply; 5+ messages in thread From: Daurnimator @ 2021-03-07 11:56 UTC (permalink / raw) To: Stefan Metzmacher Cc: André Almeida, Thomas Gleixner, Ingo Molnar, Peter Zijlstra, Darren Hart, linux-kernel, Steven Rostedt, Sebastian Andrzej Siewior, kernel, krisman, pgriffais, z.figura12, joel, malteskarupke, linux-api, Florian Weimer, GNU C Library, linux-kselftest, shuah, Arnaldo Carvalho de Melo, corbet, io-uring On Sun, 7 Mar 2021 at 22:35, Stefan Metzmacher <[email protected]> wrote: > Instead of having a blocked futex_waitv() waiting on an fd (maybe a generic eventfd() or a new futex2fd()) > would be a better interface? Like bring back FUTEX_FD? (which was removed back in 2.6.25) ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [RFC PATCH v2 00/13] Add futex2 syscall 2021-03-07 11:56 ` Daurnimator @ 2021-03-08 11:52 ` Stefan Metzmacher 0 siblings, 0 replies; 5+ messages in thread From: Stefan Metzmacher @ 2021-03-08 11:52 UTC (permalink / raw) To: Daurnimator Cc: André Almeida, Thomas Gleixner, Ingo Molnar, Peter Zijlstra, Darren Hart, linux-kernel, Steven Rostedt, Sebastian Andrzej Siewior, kernel, krisman, pgriffais, z.figura12, joel, malteskarupke, linux-api, Florian Weimer, GNU C Library, linux-kselftest, shuah, Arnaldo Carvalho de Melo, corbet, io-uring Am 07.03.21 um 12:56 schrieb Daurnimator: > On Sun, 7 Mar 2021 at 22:35, Stefan Metzmacher <[email protected]> wrote: >> Instead of having a blocked futex_waitv() waiting on an fd (maybe a generic eventfd() or a new futex2fd()) >> would be a better interface? > > Like bring back FUTEX_FD? (which was removed back in 2.6.25) Ah, ok, yes something like that. But as that was removed because of races, but might not be a good idea to bring it back. metze ^ permalink raw reply [flat|nested] 5+ messages in thread
* RE: [RFC PATCH v2 00/13] Add futex2 syscall 2021-03-07 11:34 ` [RFC PATCH v2 00/13] Add futex2 syscall Stefan Metzmacher 2021-03-07 11:56 ` Daurnimator @ 2021-03-08 11:11 ` David Laight 2021-03-08 11:55 ` Stefan Metzmacher 1 sibling, 1 reply; 5+ messages in thread From: David Laight @ 2021-03-08 11:11 UTC (permalink / raw) To: 'Stefan Metzmacher', André Almeida, Thomas Gleixner, Ingo Molnar, Peter Zijlstra, Darren Hart, [email protected], Steven Rostedt, Sebastian Andrzej Siewior Cc: [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], io-uring From: Stefan Metzmacher > Sent: 07 March 2021 11:35 > > Hi André, > > ** The wait on multiple problem > > > > The use case lies in the Wine implementation of the Windows NT interface > > WaitMultipleObjects. This Windows API function allows a thread to sleep > > waiting on the first of a set of event sources (mutexes, timers, signal, > > console input, etc) to signal. They are all events. You can only wait on either events or sockets (using select). There is a socket api to signal an event when data arrives (etc). There is also the insane (these days) restriction of 64 events. > With that in mind would it be good to have some interaction with epoll (and similar calls)? Or hook something up so that pollwakeup can kick a futex as well as waking up poll() and adding an event to epoll(). David - Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales) ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [RFC PATCH v2 00/13] Add futex2 syscall 2021-03-08 11:11 ` David Laight @ 2021-03-08 11:55 ` Stefan Metzmacher 0 siblings, 0 replies; 5+ messages in thread From: Stefan Metzmacher @ 2021-03-08 11:55 UTC (permalink / raw) To: David Laight, André Almeida, Thomas Gleixner, Ingo Molnar, Peter Zijlstra, Darren Hart, [email protected], Steven Rostedt, Sebastian Andrzej Siewior Cc: [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], io-uring Am 08.03.21 um 12:11 schrieb David Laight: > From: Stefan Metzmacher >> Sent: 07 March 2021 11:35 >> >> Hi André, >>> ** The wait on multiple problem >>> >>> The use case lies in the Wine implementation of the Windows NT interface >>> WaitMultipleObjects. This Windows API function allows a thread to sleep >>> waiting on the first of a set of event sources (mutexes, timers, signal, >>> console input, etc) to signal. > > They are all events. > You can only wait on either events or sockets (using select). > There is a socket api to signal an event when data arrives (etc). > There is also the insane (these days) restriction of 64 events. Ok. >> With that in mind would it be good to have some interaction with epoll (and similar calls)? > > Or hook something up so that pollwakeup can kick a futex as well > as waking up poll() and adding an event to epoll(). I guess as FUTEX_FD was already there and was removed we can stop this discussion. If there will every be the need to an async call, I guess a io_uring based one would be the best... metze ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2021-03-08 11:56 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <[email protected]>
2021-03-07 11:34 ` [RFC PATCH v2 00/13] Add futex2 syscall Stefan Metzmacher
2021-03-07 11:56 ` Daurnimator
2021-03-08 11:52 ` Stefan Metzmacher
2021-03-08 11:11 ` David Laight
2021-03-08 11:55 ` Stefan Metzmacher
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox