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