qemu/include/exec
Sergey Fedorov 3359baad36 tcg: Make tb_flush() thread safe
Use async_safe_run_on_cpu() to make tb_flush() thread safe.  This is
possible now that code generation does not happen in the middle of
execution.

It can happen that multiple threads schedule a safe work to flush the
translation buffer. To keep statistics and debugging output sane, always
check if the translation buffer has already been flushed.

Signed-off-by: Sergey Fedorov <serge.fdrv@gmail.com>
Signed-off-by: Sergey Fedorov <sergey.fedorov@linaro.org>
[AJB: minor re-base fixes]
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <1470158864-17651-13-git-send-email-alex.bennee@linaro.org>
Reviewed-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2016-09-27 11:57:30 +02:00
..
user linux-user: Use correct alignment for long long on i386 guests 2016-08-04 16:34:59 +03:00
address-spaces.h Clean up header guards that don't match their file name 2016-07-12 16:19:16 +02:00
cpu_ldst_template.h trace: [all] Add "guest_mem_before" event 2016-06-20 17:21:56 +01:00
cpu_ldst_useronly_template.h trace: [all] Add "guest_mem_before" event 2016-06-20 17:21:56 +01:00
cpu_ldst.h softmmu: remove now unused functions 2015-09-11 08:16:05 -07:00
cpu-all.h tcg: Improve the alignment check infrastructure 2016-07-05 20:50:13 -07:00
cpu-common.h cpus-common: move CPU list management to common code 2016-09-27 11:57:29 +02:00
cpu-defs.h qemu-common: stop including qemu/host-utils.h from qemu-common.h 2016-05-19 16:42:28 +02:00
cputlb.h include/exec: Move cputlb exec.c defs out 2015-09-16 17:33:33 +02:00
exec-all.h cpus-common: move CPU list management to common code 2016-09-27 11:57:29 +02:00
gdbstub.h linux-user: Remove redundant gdb_queuesig() 2016-06-07 16:39:07 +03:00
gen-icount.h tcg: Reorg TCGOp chaining 2016-08-05 21:44:18 +05:30
helper-gen.h Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
helper-head.h Clean up header guards that don't match their file name 2016-07-12 16:19:16 +02:00
helper-proto.h Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
helper-tcg.h Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
hwaddr.h hw: Clean up includes 2016-06-07 18:19:23 +03:00
ioport.h hw: clean up hw/hw.h includes 2016-05-19 16:42:30 +02:00
log.h log: do not unnecessarily include qom/cpu.h 2016-02-03 09:19:10 +00:00
memattrs.h hw/pci: Introduce pci_requester_id() 2015-10-19 10:13:07 +02:00
memory-internal.h memory: unregister AddressSpace MemoryListener within BQL 2015-02-10 10:25:44 -07:00
memory.h migration: sync all address spaces 2016-09-27 11:57:29 +02:00
poison.h cpu: move endian-dependent load/store functions to cpu-all.h 2016-05-19 16:42:28 +02:00
ram_addr.h memory: remove qemu_get_ram_fd, qemu_set_ram_fd, qemu_ram_block_host_ptr 2016-05-29 09:11:12 +02:00
semihost.h semihosting: add --semihosting-config arg sub-argument 2015-06-19 14:17:45 +01:00
softmmu-semi.h Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
tb-context.h tcg: Make tb_flush() thread safe 2016-09-27 11:57:30 +02:00
tb-hash-xx.h Clean up ill-advised or unusual header guards 2016-07-12 16:20:46 +02:00
tb-hash.h Clean up ill-advised or unusual header guards 2016-07-12 16:20:46 +02:00