From: Sjur Brændeland <sjur.brandeland@xxxxxxxxxxxxxx> This patch-set introduces a host-side virtqueue implementation and the CAIF Virtio Link layer. See http://lwn.net/Articles/522296/ for background info on CAIF over Virtio. After feedback from Rusty, I have re-factored vhost.c and pulled out common functionality and data definitions from drivers/vhost into drivers/virtio. Part of the challenge of doing this is that vhost.c is accessing the virtio rings from user-space, while CAIF uses kernel memory. In order to solve this issue, inline memory access functions are passed to some of the vring functions (as suggested by Rusty). I have added one argument to the function find_vqs(), in order to request host-side virtio-queue. (This needs some more work...) Feedback on this patch-set is appreciated, particularly on structure and code-reuse between vhost.c and the host-side virtio-queue. I'd also like some suggestions on how to handle the build configuration better - currently there are some unnecessary build dependencies. The patches are based on v3.7, and compile tested only. Rusty, if you want to review this later, after the merge window closes, let me know and I'll resend these patches later. Thanks, Sjur Sjur Brændeland (11): vhost: Use struct vring in vhost_virtqueue vhost: Isolate reusable vring related functions virtio-ring: Introduce file virtio_ring_host virtio-ring: Refactor out the functions accessing user memory virtio-ring: Refactor move attributes to struct virtqueue virtio_ring: Move SMP macros to virtio_ring.h virtio-ring: Add Host side virtio-ring implementation virtio: Update vring_interrupt for host-side virtio queues virtio-ring: Add BUG_ON checking on host/guest ring type virtio: Add argument reversed to function find_vqs() remoteproc: Add support for host-virtqueues Vikram ARV (1): caif_virtio: Introduce caif over virtio drivers/char/virtio_console.c | 3 +- drivers/lguest/lguest_device.c | 5 +- drivers/net/caif/Kconfig | 8 + drivers/net/caif/Makefile | 3 + drivers/net/caif/caif_virtio.c | 482 ++++++++++++++++++++++++++++++++ drivers/net/virtio_net.c | 3 +- drivers/remoteproc/remoteproc_virtio.c | 18 +- drivers/rpmsg/virtio_rpmsg_bus.c | 2 +- drivers/s390/kvm/kvm_virtio.c | 5 +- drivers/scsi/virtio_scsi.c | 2 +- drivers/vhost/Kconfig | 2 + drivers/vhost/net.c | 4 +- drivers/vhost/vhost.c | 272 +++++++----------- drivers/vhost/vhost.h | 14 +- drivers/virtio/Kconfig | 3 + drivers/virtio/Makefile | 1 + drivers/virtio/virtio_balloon.c | 3 +- drivers/virtio/virtio_mmio.c | 5 +- drivers/virtio/virtio_pci.c | 3 +- drivers/virtio/virtio_ring.c | 50 ++--- drivers/virtio/virtio_ring_host.c | 345 +++++++++++++++++++++++ include/linux/virtio.h | 6 + include/linux/virtio_caif.h | 25 ++ include/linux/virtio_config.h | 7 +- include/linux/virtio_ring.h | 77 +++++- include/uapi/linux/virtio_ids.h | 1 + 26 files changed, 1120 insertions(+), 229 deletions(-) create mode 100644 drivers/net/caif/caif_virtio.c create mode 100644 drivers/virtio/virtio_ring_host.c create mode 100644 include/linux/virtio_caif.h -- 1.7.5.4 _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization