virtio-scsi-dataplane: Code to run virtio-scsi on iothread
commit91cb1c9b56064e7cba27ab310c9c4c477694589e
authorFam Zheng <famz@redhat.com>
Tue, 23 Sep 2014 07:49:24 +0000 (23 15:49 +0800)
committerPaolo Bonzini <pbonzini@redhat.com>
Tue, 30 Sep 2014 09:11:20 +0000 (30 11:11 +0200)
treeb1e5db41309b50daaa96801e0a751408e9cf651f
parent244e2898b7a7735b3da114c120abe206af56a167
virtio-scsi-dataplane: Code to run virtio-scsi on iothread

This implements the core part of dataplane feature of virtio-scsi.

A few fields are added in VirtIOSCSICommon to maintain the dataplane
status. These fields are managed by a new source file:
virtio-scsi-dataplane.c.

Most code in this file will run on an iothread, unless otherwise
commented as in a global mutex context, such as those functions to
start, stop and setting the iothread property.

Upon start, we set up guest/host event notifiers, in a same way as
virtio-blk does. The handlers then pop request from vring and call into
virtio-scsi.c functions to process it. So we need to make sure make all
those called functions work with iothread, too.

Signed-off-by: Fam Zheng <famz@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
hw/scsi/Makefile.objs
hw/scsi/virtio-scsi-dataplane.c [new file with mode: 0644]
include/hw/virtio/virtio-scsi.h