qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v12 12/24] tcg: handle EXCP_ATOMIC exception for


From: Pranith Kumar
Subject: Re: [Qemu-devel] [PATCH v12 12/24] tcg: handle EXCP_ATOMIC exception for system emulation
Date: Mon, 13 Feb 2017 14:33:45 -0500

On Mon, Feb 13, 2017 at 2:19 PM, Richard Henderson <address@hidden> wrote:
> On 02/13/2017 11:10 PM, Alex Bennée wrote:
>>
>> @@ -239,9 +240,16 @@ static void cpu_exec_step(CPUState *cpu)
>>                       1 | CF_NOCACHE | CF_IGNORE_ICOUNT);
>>      tb->orig_tb = NULL;
>>      tb_unlock();
>> -    /* execute the generated code */
>> -    trace_exec_tb_nocache(tb, pc);
>> -    cpu_tb_exec(cpu, tb);
>> +
>> +    cc->cpu_exec_enter(cpu);
>> +
>> +    if (sigsetjmp(cpu->jmp_env, 0) == 0) {
>> +        /* execute the generated code */
>> +        trace_exec_tb_nocache(tb, pc);
>> +        cpu_tb_exec(cpu, tb);
>> +    }
>
>
> I don't understand this, since cpu_tb_exec has its own sigsetjmp.  Where is
> the exception supposed to come from that escapes?

cpu_exec() has its own sigsetjmp, not cpu_tb_exec(). The exception is
the debug exception from the generated code. Without this new
sigsetjmp, it'll jump to cpu_exec() instead of coming back here.

Thanks,
-- 
Pranith



reply via email to

[Prev in Thread] Current Thread [Next in Thread]