On Tue, Apr 09, 2019 at 02:28:23PM +0200, Paolo Bonzini wrote: Why is this 4.0 material? It's not a 4.0 regression and tweaking the event loop is risky. I suggest waiting for 4.1.
> With aio=thread, adaptive polling makes latency worse rather than > better, because it delays the execution of the ThreadPool's > completion bottom half. > > event_notifier_poll() does run while polling, detecting that > a bottom half was scheduled by a worker thread, but because > ctx->notifier is explicitly ignored in run_poll_handlers_once(), > scheduling the BH does not count as making progress and > run_poll_handlers() keeps running. Fix this by recomputing > the deadline after *timeout could have changed. > > With this change, ThreadPool still cannot participate in polling > but at least it does not suffer from extra latency. > > Reported-by: Sergio Lopez <s...@redhat.com> > Cc: Stefan Hajnoczi <stefa...@gmail.com> > Cc: Kevin Wolf <kw...@redhat.com> > Cc: qemu-bl...@nongnu.org > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> > Message-Id: <1553692145-86728-1-git-send-email-pbonz...@redhat.com> > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> > --- > v1->v2: use qemu_soonest_timeout to handle timeout == -1 > util/aio-posix.c | 12 ++++++++---- > 1 file changed, 8 insertions(+), 4 deletions(-) Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
signature.asc
Description: PGP signature