mirror_qemu/include
Paolo Bonzini 05e514b1d4 AioContext: optimize clearing the EventNotifier
It is pretty rare for aio_notify to actually set the EventNotifier.  It
can happen with worker threads such as thread-pool.c's, but otherwise it
should never be set thanks to the ctx->notify_me optimization.  The
previous patch, unfortunately, added an unconditional call to
event_notifier_test_and_clear; now add a userspace fast path that
avoids the call.

Note that it is not possible to do the same with event_notifier_set;
it would break, as proved (again) by the included formal model.

This patch survived over 3000 reboots on aarch64 KVM.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Fam Zheng <famz@redhat.com>
Tested-by: Richard W.M. Jones <rjones@redhat.com>
Message-id: 1437487673-23740-7-git-send-email-pbonzini@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2015-07-22 12:41:40 +01:00
..
block AioContext: optimize clearing the EventNotifier 2015-07-22 12:41:40 +01:00
crypto crypto: introduce generic cipher API & built-in implementation 2015-07-08 13:11:01 +02:00
disas disas: Add print_insn to disassemble info 2015-07-09 15:20:40 +02:00
exec cpu: Change cpu_exec_init() arg to cpu, not env 2015-07-09 15:20:40 +02:00
fpu softfloat: expand out STATUS macro 2015-02-06 16:11:38 +00:00
hw virtio, vhost, pc fixes for 2.4 2015-07-20 13:25:28 +01:00
libdecnumber Fix new typos in comments (found by codespell) 2014-07-18 17:45:36 +04:00
migration migration: We also want to store the global state for savevm 2015-07-15 12:22:54 +02:00
monitor Include monitor/monitor.h exactly where needed 2015-06-22 18:20:41 +02:00
net qmp: Wean off qerror_report() 2015-06-22 18:20:40 +02:00
qapi qerror: Move #include out of qerror.h 2015-06-22 18:20:40 +02:00
qemu timer: rename NSEC_PER_SEC due to Mac OS X header clash 2015-07-20 17:01:00 +01:00
qom disas: QOMify target specific setup 2015-07-09 15:20:41 +02:00
standard-headers virtio-input: move sys/ioctl.h include 2015-07-16 17:34:41 +02:00
sysemu runstate: Add runstate store 2015-07-07 14:54:51 +02:00
ui Include monitor/monitor.h exactly where needed 2015-06-22 18:20:41 +02:00
config.h janitor: move remaining public headers to include/ 2012-12-19 08:32:46 +01:00
elf.h linux/elf.h update 2015-05-27 17:52:03 +02:00
glib-compat.h glib: remove stale compat functions 2015-05-22 15:58:06 -04:00
qemu-common.h Stop including qemu-common.h in memory.h 2015-07-06 14:59:09 +02:00
qemu-io.h qemu-io: Use BlockBackend 2015-02-16 15:07:19 +00:00
qjson.h QJSON: Add JSON writer 2015-02-05 17:16:14 +01:00
trace-tcg.h trace: [tcg] Generate TCG tracing routines 2014-08-12 14:26:12 +01:00
trace.h trace: [tcg] Include event definitions in "trace.h" 2014-08-12 14:26:12 +01:00