qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH v4 00/14] virtio-scsi: Dataplane on single iothread


From: Fam Zheng
Subject: [Qemu-devel] [PATCH v4 00/14] virtio-scsi: Dataplane on single iothread
Date: Wed, 24 Sep 2014 15:21:38 +0800

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":

> address@hidden:~/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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]