Home
last modified time | relevance | path

Searched hist:"0 ceb849bd336a5f9b6e1ed56d45cf5773d251ad8" (Results 1 – 1 of 1) sorted by relevance

/openbmc/qemu/include/block/
H A Daio.hdiff 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>