[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 0/7] virtio: avoid inappropriate QEMU terminatio
From: |
Greg Kurz |
Subject: |
Re: [Qemu-devel] [PATCH 0/7] virtio: avoid inappropriate QEMU termination |
Date: |
Thu, 22 Sep 2016 08:43:10 +0200 |
On Thu, 22 Sep 2016 09:19:49 +0800
Gonglei <address@hidden> wrote:
> On 2016/9/21 21:13, Greg Kurz wrote:
> > This series is a follow up to Stefan's work to eradicate most calls to
> > exit() we currently have in the virtio code.
> >
> > It addresses all exit() call sites in the blk, net and scsi device code,
> > where the error is about a missing or malformed in/out header sent by
> > the guest. They are converted to use virtio_error() and stop any processing,
> > instead of exiting.
> >
> Actually if you just stop procesing when encounter a missing in/out header but
> send a interrupt to the guest, the guest maybe be stuck.
> virtio_net_handle_ctrl()
The virtio_error() function sets the device status to DEVICE_NEEDS_RESET and
does send a device configuration change interrupt to the guest, so it can take
appropriate action (i.e. reset the device).
Maybe I should have mentioned that in the changelog...
Cheers.
--
Greg
> is an example, the guest frontend driver infinite loop to wait the
> interrupt's coming.
> The guest can't work anymore though you don't exit the Qemu process .
>
> Regards,
> -Gonglei
>
> > The remaining call sites are related to a host misconfiguration or a
> > migration stream issue.
> >
> > The 9P code currently calls assert() instead of exit(), but it also about
> > malformed or missing headers, so it gets converted the same way.
> >
> > Next work will be to check all assert() call sites in the device code, in
> > case some of them actually refer to a bug in the guest, and should be
> > converted to use virtio_error() as well.
> >
> > ---
> >
> > Greg Kurz (7):
> > virtio-9p: handle handle_9p_output() error
> > virtio-blk: handle virtio_blk_handle_request() errors
> > virtio-net: handle virtio_net_handle_ctrl() error
> > virtio-net: handle virtio_net_receive() errors
> > virtio-net: handle virtio_net_flush_tx() errors
> > virtio-scsi: convert virtio_scsi_bad_req() to use virtio_error()
> > virtio-scsi: handle virtio_scsi_set_config() error
> >
> >
> > hw/9pfs/virtio-9p-device.c | 14 ++++++++++--
> > hw/block/virtio-blk.c | 27 +++++++++++++++--------
> > hw/net/virtio-net.c | 51
> > +++++++++++++++++++++++++-------------------
> > hw/scsi/virtio-scsi.c | 21 ++++++++++--------
> > 4 files changed, 70 insertions(+), 43 deletions(-)
> >
> > --
> > Greg
> >
> >
> >
> >
>
- Re: [Qemu-devel] [PATCH 0/7] virtio: avoid inappropriate QEMU termination, (continued)
Re: [Qemu-devel] [PATCH 0/7] virtio: avoid inappropriate QEMU termination, Gonglei, 2016/09/21
- Re: [Qemu-devel] [PATCH 0/7] virtio: avoid inappropriate QEMU termination,
Greg Kurz <=
- Re: [Qemu-devel] [PATCH 0/7] virtio: avoid inappropriate QEMU termination, Gonglei (Arei), 2016/09/22
- Re: [Qemu-devel] [PATCH 0/7] virtio: avoid inappropriate QEMU termination, Greg Kurz, 2016/09/22
- Re: [Qemu-devel] [PATCH 0/7] virtio: avoid inappropriate QEMU termination, Gonglei (Arei), 2016/09/22
- Re: [Qemu-devel] [PATCH 0/7] virtio: avoid inappropriate QEMU termination, Gonglei (Arei), 2016/09/22
- Re: [Qemu-devel] [PATCH 0/7] virtio: avoid inappropriate QEMU termination, Greg Kurz, 2016/09/22
- Re: [Qemu-devel] [PATCH 0/7] virtio: avoid inappropriate QEMU termination, Cornelia Huck, 2016/09/22