[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: |
Cornelia Huck |
Subject: |
Re: [Qemu-devel] [PATCH v3 00/10] virtio: avoid exit() when device enters invalid states |
Date: |
Mon, 19 Sep 2016 18:07:40 +0200 |
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?