Displaying 20 results from an estimated 62 matches for "virtqueue_init".
2014 Dec 03
2
[PATCH RFC v5 07/19] virtio: allow virtio-1 queue layout
On Tue, 2 Dec 2014 21:03:45 +0200
"Michael S. Tsirkin" <mst at redhat.com> wrote:
> On Tue, Dec 02, 2014 at 04:41:36PM +0100, Cornelia Huck wrote:
> > void virtio_queue_set_num(VirtIODevice *vdev, int n, int num)
> > {
> > + /*
> > + * For virtio-1 devices, the number of buffers may only be
> > + * updated if the ring addresses have
2014 Dec 03
2
[PATCH RFC v5 07/19] virtio: allow virtio-1 queue layout
On Tue, 2 Dec 2014 21:03:45 +0200
"Michael S. Tsirkin" <mst at redhat.com> wrote:
> On Tue, Dec 02, 2014 at 04:41:36PM +0100, Cornelia Huck wrote:
> > void virtio_queue_set_num(VirtIODevice *vdev, int n, int num)
> > {
> > + /*
> > + * For virtio-1 devices, the number of buffers may only be
> > + * updated if the ring addresses have
2014 Dec 03
2
[PATCH RFC v5 07/19] virtio: allow virtio-1 queue layout
...VirtQueue
> {
> VRing vring;
> - hwaddr pa;
> uint16_t last_avail_idx;
> /* Last used index value we have signalled on */
> uint16_t signalled_used;
> @@ -92,15 +91,18 @@ struct VirtQueue
> };
>
> /* virt queue functions */
> -static void virtqueue_init(VirtQueue *vq)
> +void virtio_queue_update_rings(VirtIODevice *vdev, int n)
> {
> - hwaddr pa = vq->pa;
> + VRing *vring = &vdev->vq[n].vring;
>
> - vq->vring.desc = pa;
> - vq->vring.avail = pa + vq->vring.num * sizeof(VRingDesc);
> - vq...
2014 Dec 03
2
[PATCH RFC v5 07/19] virtio: allow virtio-1 queue layout
...VirtQueue
> {
> VRing vring;
> - hwaddr pa;
> uint16_t last_avail_idx;
> /* Last used index value we have signalled on */
> uint16_t signalled_used;
> @@ -92,15 +91,18 @@ struct VirtQueue
> };
>
> /* virt queue functions */
> -static void virtqueue_init(VirtQueue *vq)
> +void virtio_queue_update_rings(VirtIODevice *vdev, int n)
> {
> - hwaddr pa = vq->pa;
> + VRing *vring = &vdev->vq[n].vring;
>
> - vq->vring.desc = pa;
> - vq->vring.avail = pa + vq->vring.num * sizeof(VRingDesc);
> - vq...
2014 Dec 02
2
[PATCH RFC v5 07/19] virtio: allow virtio-1 queue layout
...16 ++++++++++++++++
> include/hw/virtio/virtio.h | 2 ++
> 2 files changed, 18 insertions(+)
>
> diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
> index 8f69ffa..508dccf 100644
> --- a/hw/virtio/virtio.c
> +++ b/hw/virtio/virtio.c
> @@ -96,6 +96,13 @@ static void virtqueue_init(VirtQueue *vq)
> {
> hwaddr pa = vq->pa;
>
> + if (pa == -1ULL) {
> + /*
> + * This is a virtio-1 style vq that has already been setup
> + * in virtio_queue_set.
> + */
> + return;
> + }
> vq->vring.desc...
2014 Dec 02
2
[PATCH RFC v5 07/19] virtio: allow virtio-1 queue layout
...16 ++++++++++++++++
> include/hw/virtio/virtio.h | 2 ++
> 2 files changed, 18 insertions(+)
>
> diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
> index 8f69ffa..508dccf 100644
> --- a/hw/virtio/virtio.c
> +++ b/hw/virtio/virtio.c
> @@ -96,6 +96,13 @@ static void virtqueue_init(VirtQueue *vq)
> {
> hwaddr pa = vq->pa;
>
> + if (pa == -1ULL) {
> + /*
> + * This is a virtio-1 style vq that has already been setup
> + * in virtio_queue_set.
> + */
> + return;
> + }
> vq->vring.desc...
2014 Dec 11
0
[PATCH RFC v6 07/20] virtio: allow virtio-1 queue layout
...irtio.c
@@ -69,7 +69,6 @@ typedef struct VRing
struct VirtQueue
{
VRing vring;
- hwaddr pa;
uint16_t last_avail_idx;
/* Last used index value we have signalled on */
uint16_t signalled_used;
@@ -92,15 +91,18 @@ struct VirtQueue
};
/* virt queue functions */
-static void virtqueue_init(VirtQueue *vq)
+void virtio_queue_update_rings(VirtIODevice *vdev, int n)
{
- hwaddr pa = vq->pa;
+ VRing *vring = &vdev->vq[n].vring;
- vq->vring.desc = pa;
- vq->vring.avail = pa + vq->vring.num * sizeof(VRingDesc);
- vq->vring.used = vring_align(vq->vri...
2014 Dec 11
0
[PATCH RFC v6 07/20] virtio: allow virtio-1 queue layout
...irtio.c
@@ -69,7 +69,6 @@ typedef struct VRing
struct VirtQueue
{
VRing vring;
- hwaddr pa;
uint16_t last_avail_idx;
/* Last used index value we have signalled on */
uint16_t signalled_used;
@@ -92,15 +91,18 @@ struct VirtQueue
};
/* virt queue functions */
-static void virtqueue_init(VirtQueue *vq)
+void virtio_queue_update_rings(VirtIODevice *vdev, int n)
{
- hwaddr pa = vq->pa;
+ VRing *vring = &vdev->vq[n].vring;
- vq->vring.desc = pa;
- vq->vring.avail = pa + vq->vring.num * sizeof(VRingDesc);
- vq->vring.used = vring_align(vq->vri...
2014 Dec 03
0
[PATCH RFC v5 07/19] virtio: allow virtio-1 queue layout
...irtio.c
@@ -69,7 +69,6 @@ typedef struct VRing
struct VirtQueue
{
VRing vring;
- hwaddr pa;
uint16_t last_avail_idx;
/* Last used index value we have signalled on */
uint16_t signalled_used;
@@ -92,15 +91,18 @@ struct VirtQueue
};
/* virt queue functions */
-static void virtqueue_init(VirtQueue *vq)
+void virtio_queue_update_rings(VirtIODevice *vdev, int n)
{
- hwaddr pa = vq->pa;
+ VRing *vring = &vdev->vq[n].vring;
- vq->vring.desc = pa;
- vq->vring.avail = pa + vq->vring.num * sizeof(VRingDesc);
- vq->vring.used = vring_align(vq->vri...
2014 Dec 03
0
[PATCH RFC v5 07/19] virtio: allow virtio-1 queue layout
...irtio.c
@@ -69,7 +69,6 @@ typedef struct VRing
struct VirtQueue
{
VRing vring;
- hwaddr pa;
uint16_t last_avail_idx;
/* Last used index value we have signalled on */
uint16_t signalled_used;
@@ -92,15 +91,18 @@ struct VirtQueue
};
/* virt queue functions */
-static void virtqueue_init(VirtQueue *vq)
+void virtio_queue_update_rings(VirtIODevice *vdev, int n)
{
- hwaddr pa = vq->pa;
+ VRing *vring = &vdev->vq[n].vring;
- vq->vring.desc = pa;
- vq->vring.avail = pa + vq->vring.num * sizeof(VRingDesc);
- vq->vring.used = vring_align(vq->vri...
2015 Jan 22
2
[Qemu-devel] [PATCH RFC v6 07/20] virtio: allow virtio-1 queue layout
...VirtQueue
> {
> VRing vring;
> - hwaddr pa;
> uint16_t last_avail_idx;
> /* Last used index value we have signalled on */
> uint16_t signalled_used;
> @@ -92,15 +91,18 @@ struct VirtQueue
> };
>
> /* virt queue functions */
> -static void virtqueue_init(VirtQueue *vq)
> +void virtio_queue_update_rings(VirtIODevice *vdev, int n)
Perhaps something in the name to emphasise that this is only for <v1.0
devices?
> {
> - hwaddr pa = vq->pa;
> + VRing *vring = &vdev->vq[n].vring;
>
> - vq->vring.desc = pa;
&...
2015 Jan 22
2
[Qemu-devel] [PATCH RFC v6 07/20] virtio: allow virtio-1 queue layout
...VirtQueue
> {
> VRing vring;
> - hwaddr pa;
> uint16_t last_avail_idx;
> /* Last used index value we have signalled on */
> uint16_t signalled_used;
> @@ -92,15 +91,18 @@ struct VirtQueue
> };
>
> /* virt queue functions */
> -static void virtqueue_init(VirtQueue *vq)
> +void virtio_queue_update_rings(VirtIODevice *vdev, int n)
Perhaps something in the name to emphasise that this is only for <v1.0
devices?
> {
> - hwaddr pa = vq->pa;
> + VRing *vring = &vdev->vq[n].vring;
>
> - vq->vring.desc = pa;
&...
2014 Dec 02
2
[PATCH RFC v5 07/19] virtio: allow virtio-1 queue layout
...irtio.c
@@ -69,7 +69,6 @@ typedef struct VRing
struct VirtQueue
{
VRing vring;
- hwaddr pa;
uint16_t last_avail_idx;
/* Last used index value we have signalled on */
uint16_t signalled_used;
@@ -92,12 +91,13 @@ struct VirtQueue
};
/* virt queue functions */
-static void virtqueue_init(VirtQueue *vq)
+static void virtqueue_update_rings(VirtQueue *vq)
{
- hwaddr pa = vq->pa;
-
- vq->vring.desc = pa;
- vq->vring.avail = pa + vq->vring.num * sizeof(VRingDesc);
+ if (!vq->vring.desc) {
+ /* not yet setup -> nothing to do */
+ return;
+...
2014 Dec 02
2
[PATCH RFC v5 07/19] virtio: allow virtio-1 queue layout
...irtio.c
@@ -69,7 +69,6 @@ typedef struct VRing
struct VirtQueue
{
VRing vring;
- hwaddr pa;
uint16_t last_avail_idx;
/* Last used index value we have signalled on */
uint16_t signalled_used;
@@ -92,12 +91,13 @@ struct VirtQueue
};
/* virt queue functions */
-static void virtqueue_init(VirtQueue *vq)
+static void virtqueue_update_rings(VirtQueue *vq)
{
- hwaddr pa = vq->pa;
-
- vq->vring.desc = pa;
- vq->vring.avail = pa + vq->vring.num * sizeof(VRingDesc);
+ if (!vq->vring.desc) {
+ /* not yet setup -> nothing to do */
+ return;
+...
2014 Dec 03
1
[PATCH RFC v5 07/19] virtio: allow virtio-1 queue layout
...ot touch mmio ATM.
> >
> >
> > > @@ -755,7 +768,6 @@ void virtio_queue_set_align(VirtIODevice *vdev, int n, int align)
> > > assert(k->has_variable_vring_alignment);
> > >
> > > vdev->vq[n].vring.align = align;
> > > - virtqueue_init(&vdev->vq[n]);
> >
> > Don't we need to update rings?
>
> See above, I'll call update_rings in there.
>
> >
> > > }
> > >
> > > void virtio_queue_notify_vq(VirtQueue *vq)
> > > @@ -949,7 +961,8 @@ void virtio_save...
2014 Dec 03
1
[PATCH RFC v5 07/19] virtio: allow virtio-1 queue layout
...ot touch mmio ATM.
> >
> >
> > > @@ -755,7 +768,6 @@ void virtio_queue_set_align(VirtIODevice *vdev, int n, int align)
> > > assert(k->has_variable_vring_alignment);
> > >
> > > vdev->vq[n].vring.align = align;
> > > - virtqueue_init(&vdev->vq[n]);
> >
> > Don't we need to update rings?
>
> See above, I'll call update_rings in there.
>
> >
> > > }
> > >
> > > void virtio_queue_notify_vq(VirtQueue *vq)
> > > @@ -949,7 +961,8 @@ void virtio_save...
2014 Dec 03
0
[PATCH RFC v5 07/19] virtio: allow virtio-1 queue layout
...t?
I don't think it hurts to put a guard in here.
>
>
> > @@ -755,7 +768,6 @@ void virtio_queue_set_align(VirtIODevice *vdev, int n, int align)
> > assert(k->has_variable_vring_alignment);
> >
> > vdev->vq[n].vring.align = align;
> > - virtqueue_init(&vdev->vq[n]);
>
> Don't we need to update rings?
See above, I'll call update_rings in there.
>
> > }
> >
> > void virtio_queue_notify_vq(VirtQueue *vq)
> > @@ -949,7 +961,8 @@ void virtio_save(VirtIODevice *vdev, QEMUFile *f)
> >...
2014 Dec 03
0
[PATCH RFC v5 07/19] virtio: allow virtio-1 queue layout
...t?
I don't think it hurts to put a guard in here.
>
>
> > @@ -755,7 +768,6 @@ void virtio_queue_set_align(VirtIODevice *vdev, int n, int align)
> > assert(k->has_variable_vring_alignment);
> >
> > vdev->vq[n].vring.align = align;
> > - virtqueue_init(&vdev->vq[n]);
>
> Don't we need to update rings?
See above, I'll call update_rings in there.
>
> > }
> >
> > void virtio_queue_notify_vq(VirtQueue *vq)
> > @@ -949,7 +961,8 @@ void virtio_save(VirtIODevice *vdev, QEMUFile *f)
> >...
2009 Jun 18
0
[PATCHv5 09/13] qemu: virtio support for many interrupt vectors
...}
}
@@ -484,12 +491,8 @@ void virtio_config_writel(VirtIODevice *vdev, uint32_t addr, uint32_t data)
void virtio_queue_set_addr(VirtIODevice *vdev, int n, target_phys_addr_t addr)
{
- if (addr == 0) {
- virtio_reset(vdev);
- } else {
- vdev->vq[n].pa = addr;
- virtqueue_init(&vdev->vq[n]);
- }
+ vdev->vq[n].pa = addr;
+ virtqueue_init(&vdev->vq[n]);
}
target_phys_addr_t virtio_queue_get_addr(VirtIODevice *vdev, int n)
@@ -509,6 +512,18 @@ void virtio_queue_notify(VirtIODevice *vdev, int n)
}
}
+uint16_t virtio_queue_vector(VirtIODe...
2009 Jun 18
0
[PATCHv5 09/13] qemu: virtio support for many interrupt vectors
...}
}
@@ -484,12 +491,8 @@ void virtio_config_writel(VirtIODevice *vdev, uint32_t addr, uint32_t data)
void virtio_queue_set_addr(VirtIODevice *vdev, int n, target_phys_addr_t addr)
{
- if (addr == 0) {
- virtio_reset(vdev);
- } else {
- vdev->vq[n].pa = addr;
- virtqueue_init(&vdev->vq[n]);
- }
+ vdev->vq[n].pa = addr;
+ virtqueue_init(&vdev->vq[n]);
}
target_phys_addr_t virtio_queue_get_addr(VirtIODevice *vdev, int n)
@@ -509,6 +512,18 @@ void virtio_queue_notify(VirtIODevice *vdev, int n)
}
}
+uint16_t virtio_queue_vector(VirtIODe...