mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-12-31 03:30:31 -07:00
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> |
||
|---|---|---|
| .. | ||
| aio.h | ||
| block.h | ||
| block_int.h | ||
| blockjob.h | ||
| coroutine.h | ||
| coroutine_int.h | ||
| nbd.h | ||
| qapi.h | ||
| scsi.h | ||
| snapshot.h | ||
| thread-pool.h | ||