On Thu, 05/28 13:19, Paolo Bonzini wrote: > > > On 28/05/2015 13:11, Fam Zheng wrote: > > > Whoever uses ioeventfd needs to implement pause/resume, yes---not just > > > dataplane, also "regular" virtio-blk/virtio-scsi. > > > > > > However, everyone else should be okay, because the bottom half runs > > > immediately and the big QEMU lock is not released in the meanwhile. So > > > the CPUs have no occasion to run. This needs a comment! > > > > I'm not sure. It seems timer callbacks also do I/O, for example > > nvme_process_sq(). > > Right, that's also true for USB devices. :( > > Perhaps we can skip block_job_defer_to_main_loop if not necessary > (bs->aio_context == qemu_get_aio_context()).
I think so. It will make dataplane even more specialized but that seems the only way to fix the problem at the moment. Fam