qemu/docs
Paolo Bonzini 7c9b2bf677 qemu-thread: add a fast path to the Win32 QemuEvent
QemuEvents are used heavily by call_rcu.  We do not want them to be slow,
but the current implementation does a kernel call on every invocation
of qemu_event_* and won't cut it.

So, wrap a Win32 manual-reset event with a fast userspace path.  The
states and transitions are the same as for the futex and mutex/condvar
implementations, but the slow path is different of course.  The idea
is to reset the Win32 event lazily, as part of a test-reset-test-wait
sequence.  Such a sequence is, indeed, how QemuEvents are used by
RCU and other subsystems!

The patch includes a formal model of the algorithm.

Tested-by: Stefan Weil <sw@weilnetz.de>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Stefan Weil <sw@weilnetz.de>
2015-09-24 20:52:28 +02:00
..
qmp migration: create migration event 2015-07-07 14:54:55 +02:00
specs spapr: Support ibm,dynamic-reconfiguration-memory 2015-09-23 10:51:10 +10:00
aio_notify_accept.promela AioContext: optimize clearing the EventNotifier 2015-07-22 12:41:40 +01:00
aio_notify_bug.promela AioContext: fix broken placement of event_notifier_test_and_clear 2015-07-22 12:41:40 +01:00
aio_notify.promela AioContext: fix broken ctx->dispatching optimization 2015-07-22 12:41:40 +01:00
atomics.txt docs/atomics.txt: fix two typos 2015-04-30 16:05:48 +03:00
bitmaps.md qapi: Rename 'dirty-bitmap' mode to 'incremental' 2015-07-02 09:20:18 +01:00
blkdebug.txt block: Rename BlockDriverCompletionFunc to BlockCompletionFunc 2014-10-20 13:41:27 +02:00
blkverify.txt
bootindex.txt
ccid.txt libcacard: improve documentation 2014-06-10 07:44:01 +02:00
ich9-ehci-uhci.cfg
image-fuzzer.txt docs: List all image elements currently supported by the fuzzer 2014-09-22 11:39:35 +01:00
live-block-ops.txt
memory-hotplug.txt docs: update documentation for memory hot unplug 2015-04-27 21:07:38 +02:00
memory.txt docs: clarify memory region lifecycle 2015-02-16 17:30:19 +01:00
migration.txt migration: Use normal VMStateDescriptions for Subsections 2015-06-12 06:53:57 +02:00
multi-thread-compression.txt docs: Add a doc about multiple thread compression 2015-05-06 17:36:57 +02:00
multiple-iothreads.txt docs/multiple-iothreads.txt: add documentation on IOThread programming 2014-08-15 15:07:13 +02:00
multiseat.txt maint: remove / fix many doubled words 2015-09-11 10:21:38 +03:00
pci_expander_bridge.txt docs: Add PXB documentation 2015-06-03 18:19:19 +02:00
q35-chipset.cfg
qapi-code-gen.txt qapi-introspect: Hide type names 2015-09-21 09:56:49 +02:00
qcow2-cache.txt docs: document how to configure the qcow2 L2/refcount caches 2015-09-04 21:00:32 +02:00
qdev-device-use.txt
qemupciserial.inf Docs: Introduce multiport serial support in qemupciserial.inf. 2014-03-12 10:33:23 +01:00
rcu.txt rcu: add g_free_rcu 2015-02-16 17:30:19 +01:00
rdma.txt rdma: Fix incorrect description in comments 2014-09-20 17:55:53 +04:00
spice-port-fqdn.txt
tracing.txt Tracing docs fix configure option and description 2014-11-18 14:05:54 +00:00
usb2.txt
usb-storage.txt
virtio-balloon-stats.txt virtio-balloon: return empty data when no stats are available 2014-05-25 12:46:58 +03:00
vnc-ledstate-Pseudo-encoding.txt
win32-qemu-event.promela qemu-thread: add a fast path to the Win32 QemuEvent 2015-09-24 20:52:28 +02:00
writing-qmp-commands.txt qapi: Rename qmp_marshal_input_FOO() to qmp_marshal_FOO() 2015-09-21 09:56:48 +02:00
xbzrle.txt xbzrle: optimize XBZRLE to decrease the cache misses 2015-01-15 17:49:43 +05:30
xen-save-devices-state.txt