Hannes Reinecke
2021-May-23 07:39 UTC
[RFC] virtio_scsi: to poll and kick the virtqueue in timeout handler
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. Cheers, Hannes -- Dr. Hannes Reinecke Kernel Storage Architect hare at suse.de +49 911 74053 688 SUSE Software Solutions GmbH, Maxfeldstr. 5, 90409 N?rnberg HRB 36809 (AG N?rnberg), Gesch?ftsf?hrer: Felix Imend?rffer
Stefan Hajnoczi
2021-May-24 13:24 UTC
[RFC] virtio_scsi: to poll and kick the virtqueue in timeout handler
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 -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 488 bytes Desc: not available URL: <http://lists.linuxfoundation.org/pipermail/virtualization/attachments/20210524/584e4e41/attachment.sig>