[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2] mttcg: Handle EXCP_ATOMIC exception
From: |
Alex Bennée |
Subject: |
Re: [Qemu-devel] [PATCH v2] mttcg: Handle EXCP_ATOMIC exception |
Date: |
Wed, 02 Nov 2016 18:17:21 +0000 |
User-agent: |
mu4e 0.9.17; emacs 25.1.50.14 |
Paolo Bonzini <address@hidden> writes:
> On 02/11/2016 17:40, Pranith Kumar wrote:
>> 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 | 9 +++++++++
>> 1 file changed, 9 insertions(+)
>>
>> diff --git a/cpus.c b/cpus.c
>> index 8f98060..299ce7e 100644
>> --- a/cpus.c
>> +++ b/cpus.c
>> @@ -1315,6 +1315,11 @@ 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) {
>> + qemu_mutex_unlock_iothread();
>> + cpu_exec_step_atomic(cpu);
>> + qemu_mutex_lock_iothread();
>> + break;
>> }
>> } else if (cpu->stop) {
>> if (cpu->unplug) {
>> @@ -1385,6 +1390,10 @@ static void *qemu_tcg_cpu_thread_fn(void *arg)
>> */
>> g_assert(cpu->halted);
>> break;
>> + case EXCP_ATOMIC:
>> + qemu_mutex_unlock_iothread();
>> + cpu_exec_step_atomic(cpu);
>> + qemu_mutex_lock_iothread();
>> default:
>> /* Ignore everything else? */
>> break;
>>
>
> Alex, please pick up this patch yourself.
Yep, I'll apply it to my tree.
>
> Paolo
--
Alex Bennée