summary refs log tree commit diff stats
path: root/docs/devel
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2019-04-09 14:28:23 +0200
committerStefan Hajnoczi <stefanha@redhat.com>2019-05-10 10:53:21 +0100
commit993ed89f35bf2b2250727667f2a640b3c232259f (patch)
treef53e1f9d206d95153bde411252cb2f23617fa919 /docs/devel
parent118f99442d3a8ce47836978cddd9206ac2d2b001 (diff)
downloadfocaccia-qemu-993ed89f35bf2b2250727667f2a640b3c232259f.tar.gz
focaccia-qemu-993ed89f35bf2b2250727667f2a640b3c232259f.zip
aio-posix: ensure poll mode is left when aio_notify is called
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 <slp@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-id: 20190409122823.12416-1-pbonzini@redhat.com
Cc: Stefan Hajnoczi <stefanha@gmail.com>
Cc: Kevin Wolf <kwolf@redhat.com>
Cc: qemu-block@nongnu.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <1553692145-86728-1-git-send-email-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20190409122823.12416-1-pbonzini@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Diffstat (limited to 'docs/devel')
0 files changed, 0 insertions, 0 deletions