[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v6 00/25] tcg cross-tb optimizations
From: |
Emilio G. Cota |
Subject: |
Re: [Qemu-devel] [PATCH v6 00/25] tcg cross-tb optimizations |
Date: |
Wed, 3 May 2017 11:51:07 -0400 |
User-agent: |
Mutt/1.5.24 (2015-08-30) |
On Tue, May 02, 2017 at 20:36:52 -0700, Richard Henderson wrote:
> On 05/02/2017 12:22 PM, Richard Henderson wrote:
> >Changes since v5:
> ...
> > * Alpha frontend patch rewritten; the former patch appears to
> > drop clock interrupts, not exiting the kernel's idle loop.
> > I never *really* figured out why, since both patches seem
> > to annotate the same TBs in the same way.
>
> There's definitely something odd going on.
>
> With a rebuild from scratch, the same symptoms have re-appeared for Alpha.
> So it really had nothing to do with the original patch. I'm at a bit of a
> loss...
I can reliably reproduce a freeze upon booting.
Not sure this can help much (this is the first time I run an Alpha
guest), but here are some findings.
In my testing, if I disable the lookup for JMP/JSR/ret, I can boot OK.
This works:
+++ b/target/alpha/translate.c
@@ -2435,12 +2435,16 @@ static ExitStatus translate_one(DisasContext *ctx,
uint32_t insn)
if (ra != 31) {
tcg_gen_movi_i64(ctx->ir[ra], ctx->pc);
}
+#if 0
if (use_exit_tb(ctx)) {
ret = EXIT_PC_UPDATED;
} else {
tcg_gen_lookup_and_goto_ptr(cpu_pc);
ret = EXIT_GOTO_TB;
}
+#else
+ ret = EXIT_PC_UPDATED;
+#endif
break;
However, this doesn't tell us much, since these jumps are pretty common.
Interestingly, if I leave the lookup_and_goto_ptr above (s/#if 0/#if 1/), but
change the lookup_ptr helper to bypass tb_jmp_cache and directly check the
htable, it boots OK.
Could it be that we're forgetting to clear (or set) tb_jmp_cache somewhere?
Emilio
- [Qemu-devel] [PATCH v6 20/25] target/alpha: Use tcg_gen_lookup_and_goto_ptr, (continued)
- [Qemu-devel] [PATCH v6 20/25] target/alpha: Use tcg_gen_lookup_and_goto_ptr, Richard Henderson, 2017/05/02
- [Qemu-devel] [PATCH v6 18/25] target/s390: Use tcg_gen_lookup_and_goto_ptr, Richard Henderson, 2017/05/02
- [Qemu-devel] [PATCH v6 21/25] target/aarch64: optimize cross-page direct jumps in softmmu, Richard Henderson, 2017/05/02
- [Qemu-devel] [PATCH v6 22/25] target/aarch64: optimize indirect branches, Richard Henderson, 2017/05/02
- [Qemu-devel] [PATCH v6 23/25] tcg/mips: implement goto_ptr, Richard Henderson, 2017/05/02
- [Qemu-devel] [PATCH v6 24/25] target/mips: optimize cross-page direct jumps in softmmu, Richard Henderson, 2017/05/02
- [Qemu-devel] [PATCH v6 25/25] target/mips: optimize indirect branches, Richard Henderson, 2017/05/02
- Re: [Qemu-devel] [PATCH v6 00/25] tcg cross-tb optimizations, no-reply, 2017/05/02
- Re: [Qemu-devel] [PATCH v6 00/25] tcg cross-tb optimizations, Richard Henderson, 2017/05/02
- Re: [Qemu-devel] [PATCH v6 00/25] tcg cross-tb optimizations,
Emilio G. Cota <=