On 11/09/2018 09:37, Pavel Dovgalyuk wrote:
>> From: Paolo Bonzini [mailto:pbonz...@redhat.com]
>> On 09/07/2018 13:24, Pavel Dovgalyuk wrote:
>>> static void qemu_tcg_rr_wait_io_event(CPUState *cpu)
>>> {
>>>     while (all_cpu_threads_idle()) {
>>>         stop_tcg_kick_timer();
>>>         qemu_cond_wait(cpu->halt_cond, &qemu_global_mutex);
>>>     }
>>>
>>>     start_tcg_kick_timer();
>>>
>>>     qemu_wait_io_event_common(cpu);
>>> }
>>>
>>> all_cpu_threads_idle() returns true when there is no queued work.
>>> But between this call and qemu_cond_wait() iothread may add queued work
>>> and the vCPU thread will sleep infinitely.
>>
>> Maybe queue_work_on_cpu is called outside BQL?
> 
> I don't remember now.
> However, rr series includes the better version of that patch.

Good, thanks.

Paolo


Reply via email to