aboutsummaryrefslogtreecommitdiff
path: root/include/qom
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2015-08-26 00:19:19 +0200
committerPaolo Bonzini <pbonzini@redhat.com>2015-09-09 15:34:54 +0200
commite0c382113f768cc375a0d61b7cb3692f1b4bba58 (patch)
tree87828150b475879623e8068d0c2249eb43fef596 /include/qom
parent9102dedaa1ee1e89ce4a81283c403ff4928e9ef9 (diff)
downloadqemu-e0c382113f768cc375a0d61b7cb3692f1b4bba58.zip
qemu-e0c382113f768cc375a0d61b7cb3692f1b4bba58.tar.gz
qemu-e0c382113f768cc375a0d61b7cb3692f1b4bba58.tar.bz2
tcg: signal-free qemu_cpu_kick
Signals are slow and do not exist on Win32. The previous patches have done most of the legwork to introduce memory barriers (some of them were even there already for the sake of Windows!) and we can now set the flags directly in the iothread. qemu_cpu_kick_thread is not used anymore on TCG, since the TCG thread is never outside usermode while the CPU is running (not halted). Instead run the content of the signal handler (now in qemu_cpu_kick_no_halt) directly. qemu_cpu_kick_no_halt is also used in qemu_mutex_lock_iothread to avoid the overhead of qemu_cond_broadcast. Reviewed-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'include/qom')
-rw-r--r--include/qom/cpu.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/include/qom/cpu.h b/include/qom/cpu.h
index 8612655..2b4936a 100644
--- a/include/qom/cpu.h
+++ b/include/qom/cpu.h
@@ -268,7 +268,7 @@ struct CPUState {
bool created;
bool stop;
bool stopped;
- volatile sig_atomic_t exit_request;
+ bool exit_request;
uint32_t interrupt_request;
int singlestep_enabled;
int64_t icount_extra;
@@ -319,7 +319,7 @@ struct CPUState {
offset from AREG0. Leave this field at the end so as to make the
(absolute value) offset as small as possible. This reduces code
size, especially for hosts without large memory offsets. */
- volatile sig_atomic_t tcg_exit_req;
+ uint32_t tcg_exit_req;
};
QTAILQ_HEAD(CPUTailQ, CPUState);