Searched hist:"0 ceb849bd336a5f9b6e1ed56d45cf5773d251ad8" (Results 1 – 1 of 1) sorted by relevance
/openbmc/qemu/include/block/ |
H A D | aio.h | diff 0ceb849bd336a5f9b6e1ed56d45cf5773d251ad8 Mon Jul 07 08:18:04 CDT 2014 Paolo Bonzini <pbonzini@redhat.com> AioContext: speed up aio_notify
In many cases, the call to event_notifier_set in aio_notify is unnecessary. In particular, if we are executing aio_dispatch, or if aio_poll is not blocking, we know that we will soon get to the next loop iteration (if necessary); the thread that hosts the AioContext's event loop does not need any nudging.
The patch includes a Promela formal model that shows that this really works and does not need any further complication such as generation counts. It needs a memory barrier though.
The generation counts are not needed because any change to ctx->dispatching after the memory barrier is okay for aio_notify. If it changes from zero to one, it is the right thing to skip event_notifier_set. If it changes from one to zero, the event_notifier_set is unnecessary but harmless.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
|