[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH for-2.5] tcg: Increase the highwater reservation
From: |
Richard Henderson |
Subject: |
[Qemu-devel] [PATCH for-2.5] tcg: Increase the highwater reservation |
Date: |
Tue, 1 Dec 2015 08:19:27 -0800 |
If there are a lot of guest memory ops in the TB, the amount of
code generated by tcg_out_tb_finalize could be well more than 1k.
In the short term, increase the reservation larger than any TB
seen in practice.
Reported-by: Aurelien Jarno <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>
---
Reported and discussed with Aurelien on IRC yesterday. This seems
to be the easiest fix for the upcoming release. I will fix this
properly (by modifying every backend's finalize routines) for 2.6.
r~
---
tcg/tcg.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/tcg/tcg.c b/tcg/tcg.c
index b20ed19..a163541 100644
--- a/tcg/tcg.c
+++ b/tcg/tcg.c
@@ -388,7 +388,11 @@ void tcg_prologue_init(TCGContext *s)
/* Compute a high-water mark, at which we voluntarily flush the buffer
and start over. The size here is arbitrary, significantly larger
than we expect the code generation for any one opcode to require. */
- s->code_gen_highwater = s->code_gen_buffer + (total_size - 1024);
+ /* ??? We currently have no good estimate for, or checks in,
+ tcg_out_tb_finalize. If there are quite a lot of guest memory ops,
+ the number of out-of-line fragments could be quite high. In the
+ short-term, increase the highwater buffer. */
+ s->code_gen_highwater = s->code_gen_buffer + (total_size - 64*1024);
tcg_register_jit(s->code_gen_buffer, total_size);
--
2.5.0
Re: [Qemu-devel] [PATCH for-2.5] tcg: Increase the highwater reservation, Aurelien Jarno, 2015/12/01