Hi,
As I've mentioned before in the past, I will apply vhost-* without an extremely
compelling argument for it.
The reason we ultimately settled on vhost-net is that in the absence of a
fundamental change in the userspace networking interface (with something like VJ
channels), it's extremely unlikely that we would ever get the right interfaces
to do zero-copy transmit/receive in userspace.
However, for storage, be it scsi or direct access, the same problem really
doesn't exist. There isn't an obvious benefit to being in the kernel.
There are many downsides though. It's a big security risk. SCSI is a complex
protocol and I'd rather the piece of code that's parsing and emulating SCSI cdbs
was unprivileged and sandboxed than running within the kernel context.
So before we get too deep in patches, we need some solid justification first.
Regards,
Anthony Liguori
On 04/18/2012 09:38 PM, zwu.ker...@gmail.com wrote:
From: Zhi Yong Wu<wu...@linux.vnet.ibm.com>
The patchset was developed originally by Stefan about one year ago. I now
rebase it to latest qemu.git/master and fixed some issues to make it work
against tcm_vhost and virtio_scsi driver. But there are still some issues to
fix. Let us make more effort later.
Stefan Hajnoczi (13):
virtio-scsi: Add wwpn and tgpt properties
vhost: Pass device path to vhost_dev_init()
virtio-scsi: Add vhost_vring_target ioctl struct
virtio-scsi: Fix tgpt typo to tpgt and use uint16_t
virtio-scsi: Build virtio-scsi.o against vhost.o
virtio-scsi: Open and initialize /dev/vhost-scsi
virtio-scsi: Start/stop vhost
notifier: add validity check and notify function
virtio-pci: support host notifiers in TCG mode
virtio-pci: check that event notification worked
vhost-scsi: add -vhost-scsi host device
virtio-scsi: use the vhost-scsi host device
virtio-scsi: WIP VHOST_SCSI_SET_ENDPOINT call
Zhi Yong Wu (3):
vhost-scsi: enable vhost notifiers for multiple queues
vhost-scsi: move some definitions to its header file
vhost-scsi: clear endpoint on stopped
Makefile.target | 2 +-
configure | 2 +
event_notifier.c | 21 +++++++
event_notifier.h | 4 +
hw/qdev-properties.c | 32 ++++++++++
hw/qdev.h | 3 +
hw/vhost-scsi.c | 156 ++++++++++++++++++++++++++++++++++++++++++++++++++
hw/vhost-scsi.h | 39 +++++++++++++
hw/vhost.c | 5 +-
hw/vhost.h | 3 +-
hw/vhost_net.c | 2 +-
hw/virtio-pci.c | 28 ++++++++-
hw/virtio-scsi.c | 52 +++++++++++++++++
hw/virtio-scsi.h | 1 +
hw/virtio.c | 7 ++
qemu-common.h | 1 +
qemu-config.c | 16 +++++
qemu-options.hx | 4 +
vl.c | 18 ++++++
19 files changed, 388 insertions(+), 8 deletions(-)
create mode 100644 hw/vhost-scsi.c
create mode 100644 hw/vhost-scsi.h