Paolo Bonzini 0ceb849bd3 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>
2014-07-09 15:50:11 +02:00
2014-07-09 15:50:11 +02:00
2013-04-18 13:50:53 +02:00
2014-06-23 11:00:12 -04:00
2014-07-09 15:50:11 +02:00
2014-07-08 15:08:03 +02:00
2014-06-27 09:27:56 -04:00
2014-06-05 16:10:33 +02:00
2014-06-29 18:59:06 +03:00
2014-06-05 16:10:33 +02:00
2012-09-07 09:02:44 +03:00
2014-06-27 09:27:55 -04:00
2014-06-16 13:24:35 +02:00
2013-09-05 09:40:31 -05:00
2014-06-09 15:43:40 +02:00
2014-07-09 15:50:11 +02:00
2014-07-09 15:50:11 +02:00
2014-06-23 11:12:28 -04:00
2013-10-11 09:34:56 -07:00
2008-10-12 17:54:42 +00:00
2014-06-23 11:01:25 -04:00
2014-06-05 16:10:33 +02:00
2013-07-23 02:41:31 +02:00
2014-06-19 18:44:21 +03:00
2014-06-19 16:41:54 +03:00
2013-08-12 09:15:12 -05:00
2014-06-23 11:01:25 -04:00
2013-09-03 12:25:55 +02:00
2014-06-23 19:09:50 +02:00
2014-06-30 12:50:17 +02:00
2014-07-06 09:13:53 +03:00
2014-03-13 14:34:16 +00:00
2014-05-28 17:36:21 +02:00
2014-07-07 09:15:29 +02:00
2014-06-16 17:23:21 +08:00
2014-07-07 09:15:29 +02:00
2014-06-09 15:43:40 +02:00
2014-05-24 00:07:29 +04:00
2014-06-27 10:39:10 +02:00
2013-10-11 09:34:56 -07:00
2014-02-17 11:57:23 -05:00
2014-06-05 16:10:33 +02:00
2014-07-08 16:53:59 +01:00
2013-10-11 09:34:56 -07:00
2014-07-01 14:21:50 +01:00
2014-05-07 16:16:43 +00:00
2014-07-07 10:37:40 +00:00
2014-07-07 10:37:40 +00:00

Read the documentation in qemu-doc.html or on http://wiki.qemu-project.org

- QEMU team
Description
A fork of QEMU-Nyx which is better suited for my bachelors thesis
Readme 154 MiB
Languages
C 90.3%
Dylan 2.5%
Python 2.1%
C++ 2%
Shell 1.7%
Other 1.4%