On Wed, 30 Mar 2016 14:48:06 +0200 Paolo Bonzini <pbonz...@redhat.com> wrote:
> In addition to handling IO in vcpu thread and in io thread, dataplane > introduces yet another mode: handling it by aio. > > This reuses the same handler as previous modes, which triggers races as > these were not designed to be reentrant. > > Use a separate handler just for aio, and disable regular handlers when > dataplane is active. > > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> > --- > hw/scsi/virtio-scsi-dataplane.c | 43 ++++++++++++++++++++++++--- > hw/scsi/virtio-scsi.c | 65 > ++++++++++++++++++++++++++++------------- > include/hw/virtio/virtio-scsi.h | 6 ++-- > 3 files changed, 86 insertions(+), 28 deletions(-) > > +static int virtio_scsi_vring_init(VirtIOSCSI *s, VirtQueue *vq, int n, > + void (*fn)(VirtIODevice *vdev, VirtQueue *vq)) This function has been sadly misnamed since dataplane does not set up its own vrings anymore. Maybe it should be called virtio_scsi_vq_notifier_init() or so. > { > BusState *qbus = BUS(qdev_get_parent_bus(DEVICE(s))); > VirtioBusClass *k = VIRTIO_BUS_GET_CLASS(qbus); Reviewed-by: Cornelia Huck <cornelia.h...@de.ibm.com>