xemu/accel/tcg
Leandro Lupori 69993c4e62 accel/tcg: Add a quicker check for breakpoints
Profiling QEMU during Fedora 35 for PPC64 boot revealed that a
considerable amount of time was being spent in
check_for_breakpoints() (0.61% of total time on PPC64 and 2.19% on
amd64), even though it was just checking that its queue was empty
and returning, when no breakpoints were set. It turns out this
function is not inlined by the compiler and it's always called by
helper_lookup_tb_ptr(), one of the most called functions.

By leaving only the check for empty queue in
check_for_breakpoints() and moving the remaining code to
check_for_breakpoints_slow(), called only when the queue is not
empty, it's possible to avoid the call overhead. An improvement of
about 3% in total time was measured on POWER9.

Signed-off-by: Leandro Lupori <leandro.lupori@eldorado.org.br>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20221025202424.195984-2-leandro.lupori@eldorado.org.br>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
2022-10-26 11:11:28 +10:00
..
atomic_common.c.inc tracing: remove TCG memory access tracing 2022-02-09 12:08:42 +00:00
atomic_template.h Replace config-time define HOST_WORDS_BIGENDIAN 2022-04-06 10:50:37 +02:00
cpu-exec-common.c Do not include cpu.h if it's not really necessary 2021-05-02 17:24:51 +02:00
cpu-exec.c accel/tcg: Add a quicker check for breakpoints 2022-10-26 11:11:28 +10:00
cputlb.c include/hw/core: Create struct CPUJumpCache 2022-10-04 12:13:12 -07:00
hmp.c Don't include sysemu/tcg.h if it is not necessary 2022-04-20 12:12:47 -07:00
internal.h accel/tcg: Introduce TARGET_TB_PCREL 2022-10-04 12:13:16 -07:00
ldst_common.c.inc exec/memop: Adding signedness to quad definitions 2022-01-08 15:46:10 +10:00
meson.build meson: remove useless libdl test 2021-11-16 16:19:53 +00:00
plugin-gen.c accel/tcg: Use DisasContextBase in plugin_gen_tb_start 2022-10-03 20:53:31 -07:00
plugin-helpers.h accel/tcg: Add tcg call flags to plugins helpers 2021-06-19 08:51:11 -07:00
tb-context.h tcg: Move tb_phys_invalidate_count to tb_ctx 2021-07-09 09:38:33 -07:00
tb-hash.h include/hw/core: Create struct CPUJumpCache 2022-10-04 12:13:12 -07:00
tb-jmp-cache.h accel/tcg: Introduce TARGET_TB_PCREL 2022-10-04 12:13:16 -07:00
tcg-accel-ops-icount.c icount: Take iothread lock when running QEMU timers 2022-08-09 10:55:14 +01:00
tcg-accel-ops-icount.h Clean up header guards that don't match their file name 2022-05-11 16:49:06 +02:00
tcg-accel-ops-mttcg.c Revert "accel/tcg: Init TCG cflags in vCPU thread handler" 2022-10-25 22:01:14 +10:00
tcg-accel-ops-mttcg.h Clean up header guards that don't match their file name 2022-05-11 16:49:06 +02:00
tcg-accel-ops-rr.c Revert "accel/tcg: Init TCG cflags in vCPU thread handler" 2022-10-25 22:01:14 +10:00
tcg-accel-ops-rr.h Clean up header guards that don't match their file name 2022-05-11 16:49:06 +02:00
tcg-accel-ops.c gdbstub: move guest debug support check to ops 2022-10-06 11:53:41 +01:00
tcg-accel-ops.h Clean up header guards that don't match their file name 2022-05-11 16:49:06 +02:00
tcg-all.c gdbstub: move sstep flags probing into AccelClass 2022-10-06 11:53:41 +01:00
tcg-runtime-gvec.c accel/tcg: Use add/sub overflow routines in tcg-runtime-gvec.c 2021-05-16 07:13:51 -05:00
tcg-runtime.c accel/tcg: Move helper_lookup_tb_ptr to cpu-exec.c 2021-07-09 20:23:06 -07:00
tcg-runtime.h accel/tcg: Standardize atomic helpers on softmmu api 2021-07-21 07:45:38 -10:00
trace-events docs: fix references to docs/devel/tracing.rst 2021-06-02 06:51:09 +02:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
translate-all.c accel/tcg: Introduce TARGET_TB_PCREL 2022-10-04 12:13:16 -07:00
translator.c accel/tcg: Use DisasContextBase in plugin_gen_tb_start 2022-10-03 20:53:31 -07:00
user-exec-stub.c Do not include sysemu/sysemu.h if it's not really necessary 2021-05-02 17:24:50 +02:00
user-exec.c accel/tcg: Unlock mmap_lock after longjmp 2022-09-06 08:04:25 +01:00