Re: [RFC] virtio_scsi: to poll and kick the virtqueue in timeout handler

From: Stefan Hajnoczi
Date: Mon May 24 2021 - 09:24:53 EST


On Sun, May 23, 2021 at 09:39:51AM +0200, Hannes Reinecke wrote:
> On 5/23/21 8:38 AM, Dongli Zhang wrote:
> > This RFC is to trigger the discussion about to poll and kick the
> > virtqueue on purpose in virtio-scsi timeout handler.
> >
> > The virtio-scsi relies on the virtio vring shared between VM and host.
> > The VM side produces requests to vring and kicks the virtqueue, while the
> > host side produces responses to vring and interrupts the VM side.
> >
> > By default the virtio-scsi handler depends on the host timeout handler
> > by BLK_EH_RESET_TIMER to give host a chance to perform EH.
> >
> > However, this is not helpful for the case that the responses are available
> > on vring but the notification from host to VM is lost.
> >
> How can this happen?
> If responses are lost the communication between VM and host is broken, and
> we should rather reset the virtio rings themselves.

I agree. In principle it's fine to poll the virtqueue at any time, but I
don't understand the failure scenario here. It's not clear to me why the
device-to-driver vq notification could be lost.

Stefan

Attachment: signature.asc
Description: PGP signature