[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 00/18] dataplane: remove RFifoLock (including al
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH 00/18] dataplane: remove RFifoLock (including almost all previously sent patches) |
Date: |
Mon, 17 Oct 2016 05:17:58 -0400 (EDT) |
> 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?
I will prepare a branch for v2.
This should have no performance effect. The affected code only runs during QMP
operations such as live snapshots or completing a block job.
Paolo
- [Qemu-devel] [PATCH 15/18] block: only call aio_poll on the current thread's AioContext, (continued)
- [Qemu-devel] [PATCH 15/18] block: only call aio_poll on the current thread's AioContext, Paolo Bonzini, 2016/10/13
- [Qemu-devel] [PATCH 16/18] iothread: release AioContext around aio_poll, Paolo Bonzini, 2016/10/13
- [Qemu-devel] [PATCH 14/18] block: prepare bdrv_reopen_multiple to release AioContext, Paolo Bonzini, 2016/10/13
- [Qemu-devel] [PATCH 18/18] aio: convert from RFifoLock to QemuRecMutex, Paolo Bonzini, 2016/10/13
- Re: [Qemu-devel] [PATCH 00/18] dataplane: remove RFifoLock (including almost all previously sent patches), Christian Borntraeger, 2016/10/17
- Re: [Qemu-devel] [PATCH 00/18] dataplane: remove RFifoLock (including almost all previously sent patches),
Paolo Bonzini <=