Il 14/01/2014 20:16, Eric Farman ha scritto:
> In working with hot-plug/unplug of virtio-scsi devices on s390,
> we have occasionally noticed some erratic behavior when an unplug
> occurs while I/O is in flight.  Ideally a device is not being used
> when it is removed from a guest configuration, but no guarantee
> can be made that this will be the case.  And while this scenario
> is meant for I/O that occurs during normal use of a device, it
> includes the pathological case of an unplug that occurs while the
> asynchronous Inquiry loop (initiated by a hotplug) is still ongoing.
> 
> Symptoms vary depending on when the unplug is recognized.  Sometimes
> a hang occurs, because a reference is not properly released and thus
> never reaches zero.  Sometimes a reference is released too early,
> allowing the count to go negative and trip an assertion (or more
> unpredictable results, if storage is released but still used).
> 
> Of course there are many times when things work perfectly, though
> that seems to be when the I/O was able to complete in time.  These
> patches simply straighten out the completion of I/Os during an
> unplug, such that it results in predictable behavior whenever the
> device is not idle.
> 
> Eric Farman (3):
>   scsi: Assign cancel_io vector for scsi disk
>   scsi/virtio-scsi: Cleanup of I/Os that never started
>   scsi/virtio-scsi: Prevent assertion on missed events
> 
>  hw/scsi/scsi-disk.c   |    1 +
>  hw/scsi/virtio-scsi.c |    6 +++++-
>  2 files changed, 6 insertions(+), 1 deletion(-)
> 

Thanks, applied to scsi-next branch.

Paolo

Reply via email to