[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH for-2.7 3/4] virtio: add virtqueue_rewind()
From: |
Stefan Hajnoczi |
Subject: |
Re: [Qemu-devel] [PATCH for-2.7 3/4] virtio: add virtqueue_rewind() |
Date: |
Mon, 15 Aug 2016 13:34:09 +0100 |
User-agent: |
Mutt/1.6.2 (2016-07-01) |
On Mon, Aug 15, 2016 at 10:36:25AM +0200, Cornelia Huck wrote:
> On Fri, 12 Aug 2016 16:32:57 +0100
> Stefan Hajnoczi <address@hidden> wrote:
>
> > virtqueue_discard() requires a VirtQueueElement but virtio-balloon does
> > not migrate its in-use element. Introduce a new function that is
> > similar to virtqueue_discard() but doesn't require a VirtQueueElement.
> >
> > This will allow virtio-balloon to access element again after migration
> > with the usual proviso that the guest may have modified the vring since
> > last time.
> >
> > Signed-off-by: Stefan Hajnoczi <address@hidden>
> > ---
> > hw/virtio/virtio.c | 22 ++++++++++++++++++++++
> > include/hw/virtio/virtio.h | 1 +
> > 2 files changed, 23 insertions(+)
> >
> > diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
> > index 00158b6..22727ba 100644
> > --- a/hw/virtio/virtio.c
> > +++ b/hw/virtio/virtio.c
> > @@ -272,6 +272,28 @@ void virtqueue_discard(VirtQueue *vq, const
> > VirtQueueElement *elem,
> > virtqueue_unmap_sg(vq, elem, len);
> > }
> >
> > +/* virtqueue_rewind:
> > + * @vq: The #VirtQueue
> > + * @num: Number of elements to push back
> > + *
> > + * Pretend that elements weren't popped from the virtqueue. The next
> > + * virtqueue_pop() will refetch the oldest element.
> > + *
> > + * Use virtqueue_discard() instead if you have a VirtQueueElement.
> > + *
> > + * Returns: true on success, false if @num is greater than the number of
> > in use
> > + * elements.
>
> Does it make sense at all to rewind multiple elements at once? Or does
> it make more sense for the caller to rewind one-by-one until they know
> that there are no more elements that could be refetched?
I think Ladi's virtio-balloon stats fix using the vmchange callback is
preferrable. I'll drop this and the next patch.
Stefan
signature.asc
Description: PGP signature
- [Qemu-devel] [PATCH for-2.7 0/4] virtio-balloon: fix stats vq migration, Stefan Hajnoczi, 2016/08/12
- [Qemu-devel] [PATCH for-2.7 2/4] virtio: decrement vq->inuse in virtqueue_discard(), Stefan Hajnoczi, 2016/08/12
- [Qemu-devel] [PATCH for-2.7 4/4] virtio-balloon: fix stats vq migration, Stefan Hajnoczi, 2016/08/12
- [Qemu-devel] [PATCH for-2.7 3/4] virtio: add virtqueue_rewind(), Stefan Hajnoczi, 2016/08/12
- [Qemu-devel] [PATCH for-2.7 1/4] virtio: recalculate vq->inuse after migration, Stefan Hajnoczi, 2016/08/12
- Re: [Qemu-devel] [PATCH for-2.7 0/4] virtio-balloon: fix stats vq migration, no-reply, 2016/08/12
- Re: [Qemu-devel] [PATCH for-2.7 0/4] virtio-balloon: fix stats vq migration, Gaudenz Steinlin, 2016/08/15