search for: virtqueue_ops

Displaying 20 results from an estimated 30 matches for "virtqueue_ops".

2007 Sep 20
3
[PATCH 0/6] virtio with config abstraction and ring implementation
Hi all, This patch series attempts to come closer to unifying kvm and lguest's usage of virtio. As these two are the first implementations we've seen, I hope making them closer will make future ones closer too. Drivers now unpack their own configuration: their probe() methods are uniform. The configuration mechanism is extensible and can be backed by PCI, a string of bytes, or
2007 Sep 20
3
[PATCH 0/6] virtio with config abstraction and ring implementation
Hi all, This patch series attempts to come closer to unifying kvm and lguest's usage of virtio. As these two are the first implementations we've seen, I hope making them closer will make future ones closer too. Drivers now unpack their own configuration: their probe() methods are uniform. The configuration mechanism is extensible and can be backed by PCI, a string of bytes, or
2009 Aug 19
1
[PATCH v2 1/2] virtio: Add a can_add_buf helper
..._add_buf(struct virtqueue *_vq) +{ + struct vring_virtqueue *vq = to_vvq(_vq); + + return vq->num_free ? true : false; +} + static int vring_add_buf(struct virtqueue *_vq, struct scatterlist sg[], unsigned int out, @@ -350,6 +357,7 @@ EXPORT_SYMBOL_GPL(vring_interrupt); static struct virtqueue_ops vring_vq_ops = { .add_buf = vring_add_buf, .get_buf = vring_get_buf, + .can_add_buf = vring_can_add_buf, .kick = vring_kick, .disable_cb = vring_disable_cb, .enable_cb = vring_enable_cb, diff --git a/include/linux/virtio.h b/include/linux/virtio.h index 4fca4f5..cc0e3aa 100644 --- a/inclu...
2009 Aug 19
1
[PATCH v2 1/2] virtio: Add a can_add_buf helper
..._add_buf(struct virtqueue *_vq) +{ + struct vring_virtqueue *vq = to_vvq(_vq); + + return vq->num_free ? true : false; +} + static int vring_add_buf(struct virtqueue *_vq, struct scatterlist sg[], unsigned int out, @@ -350,6 +357,7 @@ EXPORT_SYMBOL_GPL(vring_interrupt); static struct virtqueue_ops vring_vq_ops = { .add_buf = vring_add_buf, .get_buf = vring_get_buf, + .can_add_buf = vring_can_add_buf, .kick = vring_kick, .disable_cb = vring_disable_cb, .enable_cb = vring_enable_cb, diff --git a/include/linux/virtio.h b/include/linux/virtio.h index 4fca4f5..cc0e3aa 100644 --- a/inclu...
2010 Jan 29
3
[PATCH 0/2] virtio net improvements
Hi Dave, Nice driver optimization from Shirley, but requires a new virtio hook. Do you want to take both? I have nothing else overlapping it. Cheers, Rusty.
2010 Jan 29
3
[PATCH 0/2] virtio net improvements
Hi Dave, Nice driver optimization from Shirley, but requires a new virtio hook. Do you want to take both? I have nothing else overlapping it. Cheers, Rusty.
2010 Apr 12
10
[PATCH 0/6] virtio: virtqueue ops cleanup
virtqueue ops were introduced in the hope that we'll have multiple implementations besides virtio_ring, but none have surfaced so far, and given that existing virtio ring is deployed in production we are likely stuck with it now, so this layer just adds complexity and overhead. Further, the need to pass vq twice to each call (as in dev->vq->vq_ops->kick(dev->vq) ) adds potential
2010 Apr 12
10
[PATCH 0/6] virtio: virtqueue ops cleanup
virtqueue ops were introduced in the hope that we'll have multiple implementations besides virtio_ring, but none have surfaced so far, and given that existing virtio ring is deployed in production we are likely stuck with it now, so this layer just adds complexity and overhead. Further, the need to pass vq twice to each call (as in dev->vq->vq_ops->kick(dev->vq) ) adds potential
2007 Jul 03
6
[PATCH 1/3] Virtio draft IV
...ypes.h> +#include <linux/scatterlist.h> +#include <linux/spinlock.h> + +/** + * virtqueue - queue for virtual I/O + * @ops: the operations for this virtqueue. + * @cb: set by the driver for callbacks. + * @priv: private pointer for the driver to use. + */ +struct virtqueue { + struct virtqueue_ops *ops; + bool (*cb)(struct virtqueue *vq); + void *priv; +}; + +/** + * virtqueue_ops - operations for virtqueue abstraction layer + * @add_buf: expose buffer to other end + * vq: the struct virtqueue we're talking about. + * sg: the description of the buffer(s). + * out_num: the number of sg re...
2007 Jul 03
6
[PATCH 1/3] Virtio draft IV
...ypes.h> +#include <linux/scatterlist.h> +#include <linux/spinlock.h> + +/** + * virtqueue - queue for virtual I/O + * @ops: the operations for this virtqueue. + * @cb: set by the driver for callbacks. + * @priv: private pointer for the driver to use. + */ +struct virtqueue { + struct virtqueue_ops *ops; + bool (*cb)(struct virtqueue *vq); + void *priv; +}; + +/** + * virtqueue_ops - operations for virtqueue abstraction layer + * @add_buf: expose buffer to other end + * vq: the struct virtqueue we're talking about. + * sg: the description of the buffer(s). + * out_num: the number of sg re...
2007 Sep 24
3
[PATCH 0/3] virtio implementation (draft VI)
I'm not reposting the drivers this time since they haven't changed significantly. See http://lguest.ozlabs.org/patches for the whole thing, from new-io.patch onwards). Changes since last version: - Switch to our own bus implementation, rather than relying on an implementation-specific bus to back this up. - Make virtio_config_ops much higher-level, don't assume layout of
2007 Sep 24
3
[PATCH 0/3] virtio implementation (draft VI)
I'm not reposting the drivers this time since they haven't changed significantly. See http://lguest.ozlabs.org/patches for the whole thing, from new-io.patch onwards). Changes since last version: - Switch to our own bus implementation, rather than relying on an implementation-specific bus to back this up. - Make virtio_config_ops much higher-level, don't assume layout of
2009 Aug 18
2
[PATCH 1/2] virtio: Add a can_add_buf helper
...ing_can_add_buf(struct virtqueue *_vq) +{ + struct vring_virtqueue *vq = to_vvq(_vq); + + return vq->num_free ? 1 : 0; +} + static int vring_add_buf(struct virtqueue *_vq, struct scatterlist sg[], unsigned int out, @@ -350,6 +357,7 @@ EXPORT_SYMBOL_GPL(vring_interrupt); static struct virtqueue_ops vring_vq_ops = { .add_buf = vring_add_buf, .get_buf = vring_get_buf, + .can_add_buf = vring_can_add_buf, .kick = vring_kick, .disable_cb = vring_disable_cb, .enable_cb = vring_enable_cb, diff --git a/include/linux/virtio.h b/include/linux/virtio.h index 4fca4f5..cc0e3aa 100644 --- a/inclu...
2009 Aug 18
2
[PATCH 1/2] virtio: Add a can_add_buf helper
...ing_can_add_buf(struct virtqueue *_vq) +{ + struct vring_virtqueue *vq = to_vvq(_vq); + + return vq->num_free ? 1 : 0; +} + static int vring_add_buf(struct virtqueue *_vq, struct scatterlist sg[], unsigned int out, @@ -350,6 +357,7 @@ EXPORT_SYMBOL_GPL(vring_interrupt); static struct virtqueue_ops vring_vq_ops = { .add_buf = vring_add_buf, .get_buf = vring_get_buf, + .can_add_buf = vring_can_add_buf, .kick = vring_kick, .disable_cb = vring_disable_cb, .enable_cb = vring_enable_cb, diff --git a/include/linux/virtio.h b/include/linux/virtio.h index 4fca4f5..cc0e3aa 100644 --- a/inclu...
2007 Dec 14
3
virtio_net and SMP guests
Rusty, Anthony, Dor, I need your brain power :-) On smp guests I have seen a problem with virtio (the version in curent Avi's git) which do not occur on single processor guests: kernel BUG at /space/kvm/drivers/virtio/virtio_ring.c:228! illegal operation: 0001 [#1] Modules linked in: ipv6 CPU: 2 Not tainted Process swapper (pid: 0, task: 000000000f83e038, ksp: 000000000f877d70) Krnl
2007 Dec 14
3
virtio_net and SMP guests
Rusty, Anthony, Dor, I need your brain power :-) On smp guests I have seen a problem with virtio (the version in curent Avi's git) which do not occur on single processor guests: kernel BUG at /space/kvm/drivers/virtio/virtio_ring.c:228! illegal operation: 0001 [#1] Modules linked in: ipv6 CPU: 2 Not tainted Process swapper (pid: 0, task: 000000000f83e038, ksp: 000000000f877d70) Krnl
2008 Jan 23
2
[PATCH 1/2] reset support: make net driver alloc/cleanup in probe and remove
Since we want to reset the device to remove them, this is simpler (device is reset for us on driver remove). Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> --- drivers/net/virtio_net.c | 44 +++++++++++++++++++++++++------------------- 1 file changed, 25 insertions(+), 19 deletions(-) diff -r 7e5b3ff06f60 drivers/net/virtio_net.c --- a/drivers/net/virtio_net.c Wed Jan 23 22:53:14
2008 Jan 23
2
[PATCH 1/2] reset support: make net driver alloc/cleanup in probe and remove
Since we want to reset the device to remove them, this is simpler (device is reset for us on driver remove). Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> --- drivers/net/virtio_net.c | 44 +++++++++++++++++++++++++------------------- 1 file changed, 25 insertions(+), 19 deletions(-) diff -r 7e5b3ff06f60 drivers/net/virtio_net.c --- a/drivers/net/virtio_net.c Wed Jan 23 22:53:14
2007 Dec 21
0
[kvm-devel] [Virtio-for-kvm] [PATCH 3/13] [Mostly resend] virtio additions
...io/virtio_ring.c b/drivers/virtio/virtio_ring.c index 1dc04b6..f9dc079 100644 --- a/drivers/virtio/virtio_ring.c +++ b/drivers/virtio/virtio_ring.c @@ -260,6 +260,8 @@ irqreturn_t vring_interrupt(int irq, void *_vq) return IRQ_HANDLED; } +EXPORT_SYMBOL_GPL(vring_interrupt); + static struct virtqueue_ops vring_vq_ops = { .add_buf = vring_add_buf, .get_buf = vring_get_buf, @@ -312,8 +314,12 @@ struct virtqueue *vring_new_virtqueue(unsigned int num, return &vq->vq; } +EXPORT_SYMBOL_GPL(vring_new_virtqueue); + void vring_del_virtqueue(struct virtqueue *vq) { kfree(to_vv...
2007 Nov 07
1
[PATCH 0/3] virtio PCI driver
This patch series implements a PCI driver for virtio. This allows virtio devices (like block and network) to be used in QEMU/KVM. I'll post a very early KVM userspace backend in kvm-devel for those that are interested. This series depends on the two virtio fixes I've posted and Rusty's config_ops refactoring. I've tested with these patches on Rusty's experimental virtio