| From: |
| Sjur Brændeland <sjur@brendeland.net> |
| To: |
| Rusty Russell <rusty@rustcorp.com.au> |
| Subject: |
| [RFCv2 00/12] Introduce host-side virtio queue and CAIF Virtio. |
| Date: |
| Wed, 5 Dec 2012 15:36:58 +0100 |
| Message-ID: |
| <1354718230-4486-1-git-send-email-sjur@brendeland.net> |
| Cc: |
| "Michael S. Tsirkin" <mst@redhat.com>,
Linus Walleij <linus.walleij@linaro.org>,
virtualization@lists.linux-foundation.org,
=?UTF-8?q?Sjur=20Br=C3=A6ndeland?= <sjur.brandeland@stericsson.com> |
| Archive-link: |
| Article, Thread
|
From: Sjur Brændeland <sjur.brandeland@stericsson.com>
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@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtua...