Re: [PATCH v2 0/2] Optimise io_uring completion waiting

From: Ingo Molnar
Date: Mon Sep 23 2019 - 04:35:56 EST



* Jens Axboe <axboe@xxxxxxxxx> wrote:

> On 9/22/19 2:08 AM, Pavel Begunkov (Silence) wrote:
> > From: Pavel Begunkov <asml.silence@xxxxxxxxx>
> >
> > There could be a lot of overhead within generic wait_event_*() used for
> > waiting for large number of completions. The patchset removes much of
> > it by using custom wait event (wait_threshold).
> >
> > Synthetic test showed ~40% performance boost. (see patch 2)
>
> I'm fine with the io_uring side of things, but to queue this up we
> really need Peter or Ingo to sign off on the core wakeup bits...
>
> Peter?

I'm not sure an extension is needed for such a special interface, why not
just put a ->threshold value next to the ctx->wait field and use either
the regular wait_event() APIs with the proper condition, or
wait_event_cmd() style APIs if you absolutely need something more complex
to happen inside?

Should result in a much lower linecount and no scheduler changes. :-)

Thanks,

Ingo