Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org> --- accel/tcg/translate-all.c | 3 +++ accel/tcg/trace-events | 1 + 2 files changed, 4 insertions(+)
diff --git a/accel/tcg/translate-all.c b/accel/tcg/translate-all.c index da9d7f16752..fba4e9dc21c 100644 --- a/accel/tcg/translate-all.c +++ b/accel/tcg/translate-all.c @@ -290,6 +290,7 @@ TranslationBlock *tb_gen_code(CPUState *cpu, TCGTBCPUState s) if (unlikely(!tb)) { /* flush must be done */ if (cpu_in_serial_context(cpu)) { + trace_tb_gen_code_buffer_overflow("tcg_tb_alloc"); tb_flush__exclusive_or_serial(); goto buffer_overflow; } @@ -325,6 +326,7 @@ TranslationBlock *tb_gen_code(CPUState *cpu, TCGTBCPUState s) if (unlikely(gen_code_size < 0)) { switch (gen_code_size) { case -1: + trace_tb_gen_code_buffer_overflow("setjmp_gen_code"); /* * Overflow of code_gen_buffer, or the current slice of it. * @@ -389,6 +391,7 @@ TranslationBlock *tb_gen_code(CPUState *cpu, TCGTBCPUState s) search_size = encode_search(tb, (void *)gen_code_buf + gen_code_size); if (unlikely(search_size < 0)) { + trace_tb_gen_code_buffer_overflow("encode_search"); tb_unlock_pages(tb); goto buffer_overflow; } diff --git a/accel/tcg/trace-events b/accel/tcg/trace-events index 121d6b5081b..0816cafd336 100644 --- a/accel/tcg/trace-events +++ b/accel/tcg/trace-events @@ -12,6 +12,7 @@ memory_notdirty_set_dirty(uint64_t vaddr) "0x%" PRIx64 # translate-all.c translate_block(void *tb, uintptr_t pc, const void *tb_code) "tb:%p, pc:0x%"PRIxPTR", tb_code:%p" +tb_gen_code_buffer_overflow(const char *reason) "reason: %s" # ldst_atomicity load_atom2_fallback(uint32_t memop, uintptr_t ra) "mop:0x%"PRIx32", ra:0x%"PRIxPTR"" -- 2.51.0