qemu-e2k/include
Jeff Cody 6133b39f3c coroutine: abort if we try to schedule or enter a pending coroutine
The previous patch fixed a race condition, in which there were
coroutines being executing doubly, or after coroutine deletion.

We can detect common scenarios when this happens, and print an error
message and abort before we corrupt memory / data, or segfault.

This patch will abort if an attempt to enter a coroutine is made while
it is currently pending execution, either in a specific AioContext bh,
or pending execution via a timer.  It will also abort if a coroutine
is scheduled, before a prior scheduled run has occurred.

We cannot rely on the existing co->caller check for recursive re-entry
to catch this, as the coroutine may run and exit with
COROUTINE_TERMINATE before the scheduled coroutine executes.

(This is the scenario that was occurring and fixed in the previous
patch).

This patch also re-orders the Coroutine struct elements in an attempt to
optimize caching.

Signed-off-by: Jeff Cody <jcody@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
2017-11-21 11:58:07 -05:00
..
block blockjob: do not allow coroutine double entry or entry-after-completion 2017-11-21 11:51:18 -05:00
chardev
crypto block: convert qcrypto_block_encrypt|decrypt to take bytes offset 2017-10-06 16:30:47 +02:00
disas disas: Dump insn bytes along with capstone disassembly 2017-11-09 08:46:38 +01:00
exec exec.c: Factor out before/after actions for notdirty memory writes 2017-11-21 12:09:25 +00:00
fpu
hw target-arm queue: 2017-11-21 09:56:05 +00:00
io io: get rid of bounce buffering in websock write path 2017-10-16 16:57:08 +01:00
libdecnumber
migration
monitor
net net: Transmit zero UDP checksum as 0xFFFF 2017-11-20 11:08:00 +08:00
qapi qapi: Add qobject_is_equal() 2017-11-17 18:21:30 +01:00
qemu coroutine: abort if we try to schedule or enter a pending coroutine 2017-11-21 11:58:07 -05:00
qom qom: move CPUClass.tcg_initialize to a global 2017-11-13 13:55:25 +00:00
scsi
standard-headers linux-headers: sync against v4.14-rc1 2017-09-29 10:58:31 +02:00
sysemu tpm: add missing include 2017-10-24 13:37:13 -04:00
ui ui: opengl updates for dma-buf support. 2017-10-19 12:09:53 +01:00
elf.h
glib-compat.h glib-compat: move G_SOURCE_CONTINUE/REMOVE there 2017-10-10 16:33:55 +02:00
qemu-common.h Use HTTPS for qemu.org and other domains 2017-11-21 13:34:13 +00:00
qemu-io.h
trace-tcg.h