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?

Paolo

Reply via email to