qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH] mttcg: Handle EXCP_ATOMIC exception


From: Pranith Kumar
Subject: Re: [Qemu-devel] [PATCH] mttcg: Handle EXCP_ATOMIC exception
Date: Wed, 02 Nov 2016 12:30:20 -0400

Alex Bennée writes:

> Pranith Kumar <address@hidden> writes:
>
>> The patch enables handling atomic code in the guest. This should be
>> preferably done in cpu_handle_exception(), but the current assumptions
>> regarding when we can execute atomic sections cause a deadlock.
>>
>> Signed-off-by: Pranith Kumar <address@hidden>
>> ---
>>  cpus.c | 7 +++++++
>>  1 file changed, 7 insertions(+)
>>
>> diff --git a/cpus.c b/cpus.c
>> index 8f98060..c4ba7d8 100644
>> --- a/cpus.c
>> +++ b/cpus.c
>> @@ -1315,6 +1315,9 @@ static void *qemu_tcg_rr_cpu_thread_fn(void *arg)
>>                  if (r == EXCP_DEBUG) {
>>                      cpu_handle_guest_debug(cpu);
>>                      break;
>> +                } else if (r == EXCP_ATOMIC) {
>> +                    cpu_exec_step_atomic(cpu);
>> +                    break;
>
> Hmm don't we need to unlock the iothread here as well? I suspect you
> never see a deadlock because the rr thread can't by definition race with
> itself but the locking practice should be the same for both cases.
>

Yes, not having any other thread to race with is the reason I did not unlock
the iothread. But, I agree that the semantics need to be the same.

I will send an updated patch.

Thanks,
-- 
Pranith



reply via email to

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