All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v4 00/14] virtio-scsi: Dataplane on single iothread
@ 2014-09-24  7:21 Fam Zheng
  2014-09-24  7:21 ` [Qemu-devel] [PATCH v4 01/14] virtio-scsi: Split virtio_scsi_handle_cmd_req from virtio_scsi_handle_cmd Fam Zheng
                   ` (13 more replies)
  0 siblings, 14 replies; 15+ messages in thread
From: Fam Zheng @ 2014-09-24  7:21 UTC (permalink / raw)
  To: qemu-devel; +Cc: kwolf, pbonzini, stefanha

This series is only a rebase (onto scsi-next^14) and resend, because one
updated patch was overlooked in v3 by me, as a result Paolo's scsi-next branch
is broken:

qemu-system-x86_64: /home/fam/qemu/hw/scsi/virtio-scsi.c:74:
virtio_scsi_complete_req: Assertion `req->vq == ((void *)0)' failed.

Because of the bad placement of vring field in VirtIOSCSIReq.

What were included in v3 are identical, the only difference from scsi-next is
in "[03/14] virtio-scsi: Add VirtIOSCSIVring in VirtIOSCSIReq":

> fam@fam-t430:~/qemu [virtio-scsi-dataplane]$ git diff paolo/scsi-next 
> diff --git a/include/hw/virtio/virtio-scsi.h b/include/hw/virtio/virtio-scsi.h
> index 2c4e515..6134c0b 100644
> --- a/include/hw/virtio/virtio-scsi.h
> +++ b/include/hw/virtio/virtio-scsi.h
> @@ -200,17 +200,10 @@ typedef struct VirtIOSCSI {
>  
>  typedef struct VirtIOSCSIReq {
>      VirtIOSCSI *dev;
> -
> +    VirtQueue *vq;
>      QEMUSGList qsgl;
>      QEMUIOVector resp_iov;
>  
> -    /* set respectively by non-dataplane and dataplane code */
> -    VirtQueue *vq;
> -    VirtIOSCSIVring *vring;
> -
> -    /* Used for two-stage request submission */
> -    QTAILQ_ENTRY(VirtIOSCSIReq) next;
> -
>      /* Note:
>       * - fields before elem are initialized by virtio_scsi_init_req;
>       * - elem is uninitialized at the time of allocation.
> @@ -218,6 +211,11 @@ typedef struct VirtIOSCSIReq {
>       * */
>  
>      VirtQueueElement elem;
> +    /* Set by dataplane code. */
> +    VirtIOSCSIVring *vring;
> +    /* Used by two stages request submitting */
> +    QTAILQ_ENTRY(VirtIOSCSIReq) next;
> +
>      SCSIRequest *sreq;
>      size_t resp_size;
>      enum SCSIXferMode mode;

Sorry for the trouble, Paolo!

Thanks,
Fam


Fam Zheng (14):
  virtio-scsi: Split virtio_scsi_handle_cmd_req from
    virtio_scsi_handle_cmd
  virtio-scsi: Split virtio_scsi_handle_ctrl_req from
    virtio_scsi_handle_ctrl
  virtio-scsi: Add VirtIOSCSIVring in VirtIOSCSIReq
  virtio-scsi: Make virtio_scsi_init_req public
  virtio-scsi: Make virtio_scsi_free_req public
  virtio-scsi: Make virtio_scsi_push_event public
  virtio-scsi: Add 'iothread' property to virtio-scsi-pci
  virtio-scsi-dataplane: Code to run virtio-scsi on iothread
  virtio-scsi: Hook up with dataplane
  virtio-scsi: Add migration state notifier for dataplane code
  virtio-scsi: Two stages processing of cmd request
  virtio-scsi: Batched prepare for cmd reqs
  virtio-scsi: Call bdrv_io_plug/bdrv_io_unplug in cmd request handling
  virtio-scsi: Process ".iothread" property

 hw/scsi/Makefile.objs           |   2 +-
 hw/scsi/virtio-scsi-dataplane.c | 229 +++++++++++++++++++++++++++++++
 hw/scsi/virtio-scsi.c           | 292 +++++++++++++++++++++++++---------------
 hw/virtio/virtio-pci.c          |   2 +
 include/hw/virtio/virtio-scsi.h |  82 ++++++++++-
 5 files changed, 497 insertions(+), 110 deletions(-)
 create mode 100644 hw/scsi/virtio-scsi-dataplane.c

-- 
1.9.3

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2014-09-24  8:09 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-09-24  7:21 [Qemu-devel] [PATCH v4 00/14] virtio-scsi: Dataplane on single iothread Fam Zheng
2014-09-24  7:21 ` [Qemu-devel] [PATCH v4 01/14] virtio-scsi: Split virtio_scsi_handle_cmd_req from virtio_scsi_handle_cmd Fam Zheng
2014-09-24  7:21 ` [Qemu-devel] [PATCH v4 02/14] virtio-scsi: Split virtio_scsi_handle_ctrl_req from virtio_scsi_handle_ctrl Fam Zheng
2014-09-24  7:21 ` [Qemu-devel] [PATCH v4 03/14] virtio-scsi: Add VirtIOSCSIVring in VirtIOSCSIReq Fam Zheng
2014-09-24  7:21 ` [Qemu-devel] [PATCH v4 04/14] virtio-scsi: Make virtio_scsi_init_req public Fam Zheng
2014-09-24  7:21 ` [Qemu-devel] [PATCH v4 05/14] virtio-scsi: Make virtio_scsi_free_req public Fam Zheng
2014-09-24  7:21 ` [Qemu-devel] [PATCH v4 06/14] virtio-scsi: Make virtio_scsi_push_event public Fam Zheng
2014-09-24  7:21 ` [Qemu-devel] [PATCH v4 07/14] virtio-scsi: Add 'iothread' property to virtio-scsi-pci Fam Zheng
2014-09-24  7:21 ` [Qemu-devel] [PATCH v4 08/14] virtio-scsi-dataplane: Code to run virtio-scsi on iothread Fam Zheng
2014-09-24  7:21 ` [Qemu-devel] [PATCH v4 09/14] virtio-scsi: Hook up with dataplane Fam Zheng
2014-09-24  7:21 ` [Qemu-devel] [PATCH v4 10/14] virtio-scsi: Add migration state notifier for dataplane code Fam Zheng
2014-09-24  7:21 ` [Qemu-devel] [PATCH v4 11/14] virtio-scsi: Two stages processing of cmd request Fam Zheng
2014-09-24  7:21 ` [Qemu-devel] [PATCH v4 12/14] virtio-scsi: Batched prepare for cmd reqs Fam Zheng
2014-09-24  7:21 ` [Qemu-devel] [PATCH v4 13/14] virtio-scsi: Call bdrv_io_plug/bdrv_io_unplug in cmd request handling Fam Zheng
2014-09-24  7:21 ` [Qemu-devel] [PATCH v4 14/14] virtio-scsi: Process ".iothread" property Fam Zheng

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.