[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v1 3/3] tcg-runtime: short-circuit lookup_tb_ptr
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH v1 3/3] tcg-runtime: short-circuit lookup_tb_ptr on IRQs |
Date: |
Wed, 14 Jun 2017 19:08:24 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.1.0 |
On 14/06/2017 18:51, Richard Henderson wrote:
> On 06/14/2017 09:08 AM, Paolo Bonzini wrote:
>> I think this is a band-aid, and would rather fix the front-ends as in
>> Emilio's patch. For Alpha my guess would be:
>>
>> diff --git a/target/alpha/translate.c b/target/alpha/translate.c
>> index 7c45ae360c..6e2ee3f958 100644
>> --- a/target/alpha/translate.c
>> +++ b/target/alpha/translate.c
>> @@ -1198,7 +1198,9 @@ static ExitStatus gen_call_pal(DisasContext
>> *ctx, int palcode)
>> tcg_gen_andi_i64(tmp, ctx->ir[IR_A0], PS_INT_MASK);
>> tcg_gen_st8_i64(tmp, cpu_env, offsetof(CPUAlphaState,
>> ps));
>> tcg_temp_free(tmp);
>> - break;
>> +
>> + /* Reevaluate interrupts */
>> + return EXIT_PC_STALE;
>> case 0x36:
>> /* RDPS */
>
> Thanks!
>
> You're right that adjusting SWPIPL along these lines does fix the
> problem for Alpha. Given that Alpha would typically hang in arch_idle,
> I'd been focusing primarily on WTINT.
And MIPS:
diff --git a/target/mips/translate.c b/target/mips/translate.c
index 559f8fed89..244f3cb9ab 100644
--- a/target/mips/translate.c
+++ b/target/mips/translate.c
@@ -13403,8 +13403,9 @@ static void gen_pool32axf (CPUMIPSState *env,
DisasContext *ctx, int rt, int rs)
save_cpu_state(ctx, 1);
gen_helper_ei(t0, cpu_env);
gen_store_gpr(t0, rs);
- /* Stop translation as we may have switched the execution mode
*/
- ctx->bstate = BS_STOP;
+ /* BS_STOP isn't good enough here, reevaluate
cpu_mips_hw_interrupts_enabled. */
+ gen_save_pc(ctx->pc + 4);
+ ctx->bstate = BS_EXCP;
tcg_temp_free(t0);
}
break;
The others seem okay.
Paolo
- [Qemu-devel] [PATCH v1 0/3] Fixes for TCG hangs, Alex Bennée, 2017/06/14
- [Qemu-devel] [PATCH v1 3/3] tcg-runtime: short-circuit lookup_tb_ptr on IRQs, Alex Bennée, 2017/06/14
- Re: [Qemu-devel] [PATCH v1 3/3] tcg-runtime: short-circuit lookup_tb_ptr on IRQs, Richard Henderson, 2017/06/14
- Re: [Qemu-devel] [PATCH v1 3/3] tcg-runtime: short-circuit lookup_tb_ptr on IRQs, Paolo Bonzini, 2017/06/14
- Re: [Qemu-devel] [PATCH v1 3/3] tcg-runtime: short-circuit lookup_tb_ptr on IRQs, Richard Henderson, 2017/06/14
- Re: [Qemu-devel] [PATCH v1 3/3] tcg-runtime: short-circuit lookup_tb_ptr on IRQs,
Paolo Bonzini <=
- Re: [Qemu-devel] [PATCH v1 3/3] tcg-runtime: short-circuit lookup_tb_ptr on IRQs, Richard Henderson, 2017/06/14
- Re: [Qemu-devel] [PATCH v1 3/3] tcg-runtime: short-circuit lookup_tb_ptr on IRQs, Alex Bennée, 2017/06/14
- Re: [Qemu-devel] [PATCH v1 3/3] tcg-runtime: short-circuit lookup_tb_ptr on IRQs, Richard Henderson, 2017/06/14
- Re: [Qemu-devel] [PATCH v1 3/3] tcg-runtime: short-circuit lookup_tb_ptr on IRQs, Emilio G. Cota, 2017/06/16
- Re: [Qemu-devel] [PATCH v1 3/3] tcg-runtime: short-circuit lookup_tb_ptr on IRQs, Alex Bennée, 2017/06/14
- Re: [Qemu-devel] [PATCH v1 3/3] tcg-runtime: short-circuit lookup_tb_ptr on IRQs, Richard Henderson, 2017/06/14
- Re: [Qemu-devel] [PATCH v1 3/3] tcg-runtime: short-circuit lookup_tb_ptr on IRQs, Peter Maydell, 2017/06/14
- Re: [Qemu-devel] [PATCH v1 3/3] tcg-runtime: short-circuit lookup_tb_ptr on IRQs, Richard Henderson, 2017/06/14
[Qemu-devel] [PATCH v1 2/3] tcg-runtime: light re-factor of lookup_tb_ptr, Alex Bennée, 2017/06/14