qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v2 0/3] virtio-scsi unplug of active device
@ 2014-01-14 19:16 Eric Farman
  2014-01-14 19:16 ` [Qemu-devel] [PATCH v2 1/3] scsi: Assign cancel_io vector for scsi disk Eric Farman
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Eric Farman @ 2014-01-14 19:16 UTC (permalink / raw)
  To: qemu-devel; +Cc: Paolo Bonzini

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(-)

-- 
1.7.9.5

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2014-01-15  9:38 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-01-14 19:16 [Qemu-devel] [PATCH v2 0/3] virtio-scsi unplug of active device Eric Farman
2014-01-14 19:16 ` [Qemu-devel] [PATCH v2 1/3] scsi: Assign cancel_io vector for scsi disk Eric Farman
2014-01-14 19:16 ` [Qemu-devel] [PATCH v2 2/3] scsi/virtio-scsi: Cleanup of I/Os that never started Eric Farman
2014-01-14 19:16 ` [Qemu-devel] [PATCH v2 3/3] scsi/virtio-scsi: Prevent assertion on missed events Eric Farman
2014-01-15  9:37 ` [Qemu-devel] [PATCH v2 0/3] virtio-scsi unplug of active device Paolo Bonzini

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).