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

Bug#686636: Please backport virtio-scsi to wheezy



Package: linux
Version: 3.2.23-1
Severity: wishlist

Virtio SCSI a new driver/transport for block storage for paravirtualized
systems. It replaces the older & limited in many ways virtio-blk and is
implemented by basically passing through SCSI over virtio. Hence devices
appear as regular SCSI devices like /dev/sda instead of /dev/vda, SCSI
passthrough can be easily implemented, multiple LUNs can be supported
without provisioning a PCI card for each etc.

http://wiki.qemu.org/Features/VirtioSCSI

On the host side, virtio-scsi is supported by qemu(-kvm) >= 1.1 (in
wheezy) or by a kernel vhost driver for LIO which is still experimental
and merged in v3.6 as a staging driver.

virtio-scsi is the guest driver for supporting such devices, i.e. it's
needed in a guest system configured with one or more virtio-scsi
devices. It was first included in Linux v3.4 with some features/bugfixes
in v3.6:

59057fb [SCSI] virtio-scsi: Add vdrv->scan for post VIRTIO_CONFIG_S_DRIVER_OK LU
365a715 [SCSI] virtio-scsi: hotplug support for virtio-scsi
2bd37f0 [SCSI] virtio-scsi: split scatterlist per target
bce750b [SCSI] virtio-scsi: release sg_lock after add_buf
139fe45 [SCSI] virtio-scsi: split locking per vq
b5ee8f2 [SCSI] virtio-scsi: unlock during kick
e4594bb [SCSI] virtio_scsi: fix TMF use-after-free
4fe74b1 [SCSI] virtio-scsi: SCSI driver for QEMU based virtual machines
(the last two are v3.4, the rest are v3.6)

I believe it's important for wheezy to support being a guest in such
configurations, as I expect virtio-scsi to be gradually adopted during
the wheezy lifecycle. The driver is mostly self-contained and
straightforward to backport (I wouldn't ask otherwise):

The above commits cherry-picked against v3.2.28 result in the following:
 drivers/scsi/Kconfig        |    8 +
 drivers/scsi/Makefile       |    1 +
 drivers/scsi/virtio_scsi.c  |  803 +++++++++++++++++++++++++++++++++
 drivers/virtio/virtio.c     |    5 +-
 include/linux/virtio.h      |    1 +
 include/linux/virtio_ids.h  |    1 +
 include/linux/virtio_scsi.h |  123 +++++
 7 files changed, 941 insertions(+), 1 deletion(-)

The v3.6 could be risky, considering they haven't been released yet and
haven't seen much testing. If you prefer merging just v3.4's
4fe74b1/e4594bb instead, the stat is:
 drivers/scsi/Kconfig        |    8 +
 drivers/scsi/Makefile       |    1 +
 drivers/scsi/virtio_scsi.c  |  596 +++++++++++++++++++++++++++++++++
 include/linux/virtio_ids.h  |    1 +
 include/linux/virtio_scsi.h |  114 +++++++
 5 files changed, 720 insertions(+)

Thanks,
Faidon


Reply to: