On 10/13/2016 07:34 PM, Paolo Bonzini wrote: > This patch reorganizes aio_poll callers to establish new rules for > dataplane locking. The idea is that I/O operations on a dataplane > BDS (i.e. one where the AioContext is not the main one) do not call > aio_poll anymore. Instead, they wait for the operation to end in the > other I/O thread, at which point the other I/O thread calls bdrv_wakeup > to wake up the main thread. > > With this change, only one thread runs aio_poll for an AioContext. > While aio_context_acquire/release is still needed to protect the BDSes, > it need not interrupt the other thread's event loop anymore, and therefore > it does not need contention callbacks anymore. Thus the patch can remove > RFifoLock. This fixes possible hangs in bdrv_drain_all, reproducible (for > example) by unplugging a virtio-scsi-dataplane device while there is I/O > going on for a virtio-blk-dataplane on the same I/O thread.
Have you seen improvements or deteriorations in performance with single disks or multiple disks? Is there a branch?