[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC PATCH v1 3/9] cpus: only take BQL for sleeping thr
From: |
Alex Bennée |
Subject: |
Re: [Qemu-devel] [RFC PATCH v1 3/9] cpus: only take BQL for sleeping threads |
Date: |
Fri, 05 May 2017 16:28:59 +0100 |
User-agent: |
mu4e 0.9.19; emacs 25.2.17 |
Paolo Bonzini <address@hidden> writes:
> On 05/05/2017 12:38, Alex Bennée wrote:
>>
>> while (qemu_tcg_should_sleep(cpu)) {
>> + qemu_mutex_lock_iothread();
>> stop_tcg_kick_timer();
>> qemu_cond_wait(cpu->halt_cond, &qemu_global_mutex);
>> + qemu_mutex_unlock_iothread();
>> }
>
> This is racy. You need to recheck the condition under the lock, or to
> switch from QemuCond to QemuEvent (then you still need to check the
> condition twice, the second between qemu_event_reset and qemu_event_wait).
Doh of course, being a bit too eager there ;-)
--
Alex Bennée
- [Qemu-devel] [RFC PATCH v1 0/9] BQL and Replay Lock changes, Alex Bennée, 2017/05/05
- [Qemu-devel] [RFC PATCH v1 1/9] target/arm/arm-powertctl: drop BQL assertions, Alex Bennée, 2017/05/05
- [Qemu-devel] [RFC PATCH v1 5/9] replay: make locking visible outside replay code, Alex Bennée, 2017/05/05
- [Qemu-devel] [RFC PATCH v1 2/9] cpus: push BQL lock to qemu_*_wait_io_event, Alex Bennée, 2017/05/05
- [Qemu-devel] [RFC PATCH v1 3/9] cpus: only take BQL for sleeping threads, Alex Bennée, 2017/05/05
- [Qemu-devel] [RFC PATCH v1 4/9] replay/replay-internal.c: track holding of replay_lock, Alex Bennée, 2017/05/05
- [Qemu-devel] [RFC PATCH v1 8/9] util/qemu-thread-*: add qemu_lock, locked and unlock trace events, Alex Bennée, 2017/05/05
- Re: [Qemu-devel] [RFC PATCH v1 8/9] util/qemu-thread-*: add qemu_lock, locked and unlock trace events, Paolo Bonzini, 2017/05/05
- Re: [Qemu-devel] [RFC PATCH v1 8/9] util/qemu-thread-*: add qemu_lock, locked and unlock trace events, Alex Bennée, 2017/05/05
- Re: [Qemu-devel] [RFC PATCH v1 8/9] util/qemu-thread-*: add qemu_lock, locked and unlock trace events, Paolo Bonzini, 2017/05/06
- Re: [Qemu-devel] [RFC PATCH v1 8/9] util/qemu-thread-*: add qemu_lock, locked and unlock trace events, Stefan Hajnoczi, 2017/05/08
- Re: [Qemu-devel] [RFC PATCH v1 8/9] util/qemu-thread-*: add qemu_lock, locked and unlock trace events, Alex Bennée, 2017/05/09
- Re: [Qemu-devel] [RFC PATCH v1 8/9] util/qemu-thread-*: add qemu_lock, locked and unlock trace events, Paolo Bonzini, 2017/05/09
[Qemu-devel] [RFC PATCH v1 6/9] replay: push replay_mutex_lock up the call tree, Alex Bennée, 2017/05/05
[Qemu-devel] [RFC PATCH v1 7/9] scripts/qemu-gdb: add simple tcg lock status helper, Alex Bennée, 2017/05/05