Messages in this thread | | | Subject | Re: [RFC 4/4] io_uring: implement futex wait | From | Jens Axboe <> | Date | Tue, 1 Jun 2021 10:01:11 -0600 |
| |
On 6/1/21 9:58 AM, Pavel Begunkov wrote: > On 6/1/21 4:45 PM, Jens Axboe wrote: >> On 6/1/21 8:58 AM, Pavel Begunkov wrote: >>> Add futex wait requests, those always go through io-wq for simplicity. >> >> Not a huge fan of that, I think this should tap into the waitqueue >> instead and just rely on the wakeup callback to trigger the event. That >> would be a lot more efficient than punting to io-wq, both in terms of >> latency on trigger, but also for efficiency if the app is waiting on a >> lot of futexes. > > Yes, that would be preferable, but looks futexes don't use > waitqueues but some manual enqueuing into a plist_node, see > futex_wait_queue_me() or mark_wake_futex(). > Did I miss it somewhere?
Yes, we'd need to augment that with a callback. I do think that's going to be necessary, I don't see the io-wq solution working well outside of the most basic of use cases. And even for that, it won't be particularly efficient for single waits.
-- Jens Axboe
| |