[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v3 00/10] virtio: avoid exit() when device enter
From: |
Michael S. Tsirkin |
Subject: |
Re: [Qemu-devel] [PATCH v3 00/10] virtio: avoid exit() when device enters invalid states |
Date: |
Mon, 19 Sep 2016 20:51:04 +0300 |
On Mon, Sep 19, 2016 at 06:07:40PM +0200, Cornelia Huck wrote:
> On Tue, 12 Apr 2016 14:25:24 +0100
> Stefan Hajnoczi <address@hidden> wrote:
>
> > v3:
> > * Patch 1: Fix typo and clarify commit description [Markus]
> > * Use virtio_set_status() instead of open coding assignment [Cornelia]
> > * Add live migration
> >
> > v2:
> > * Add VIRTIO_CONFIG_S_NEEDS_RESET notification for VIRTIO 1.0 [Cornelia]
> > (Note I've sent a Linux virtio_config.h patch to get the constant added
> > to
> > the headers.)
> > * Split int -> unsigned int change into separate commit [Fam]
> > * Fix double "index" typo in commit description [Fam]
> >
> > The virtio code calls exit() when the device enters an invalid state. This
> > means invalid vring indices and descriptor chains kill the VM. See the
> > patch
> > descriptions for why this is a bad thing.
> >
> > When the virtio device is in the broken state calls to virtqueue_pop() and
> > friends will pretend the virtqueue is empty. This means the device will
> > become
> > isolated from guest activity until it is reset again.
> >
> > RFC because two things are missing:
> > 1. Live migration support (subsection for broken flag?)
> > 2. Auditing devices and replacing exit() calls there too
> >
> > Stefan Hajnoczi (10):
> > virtio: fix stray tab character
> > include: update virtio_config.h Linux header
> > virtio: stop virtqueue processing if device is broken
> > virtio: migrate vdev->broken flag
> > virtio: handle virtqueue_map_desc() errors
> > virtio: handle virtqueue_get_avail_bytes() errors
> > virtio: use unsigned int for virtqueue_get_avail_bytes() index
> > virtio: handle virtqueue_read_next_desc() errors
> > virtio: handle virtqueue_num_heads() errors
> > virtio: handle virtqueue_get_head() errors
> >
> > hw/virtio/virtio.c | 223
> > +++++++++++++++++++------
> > include/hw/virtio/virtio.h | 3 +
> > include/standard-headers/linux/virtio_config.h | 2 +
> > 3 files changed, 181 insertions(+), 47 deletions(-)
> >
>
> As the exit-in-virtio question has popped up several times in the
> recent past: I think we should go forward with this series, even if we
> still need to look at the individual devices. Do you have a version
> that fits on current master?
I agree.