qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Eric Farman <farman@linux.vnet.ibm.com>
To: qemu-devel@nongnu.org
Cc: Paolo Bonzini <pbonzini@redhat.com>
Subject: [Qemu-devel] [PATCH v2 0/3] virtio-scsi unplug of active device
Date: Tue, 14 Jan 2014 14:16:23 -0500	[thread overview]
Message-ID: <1389726986-8600-1-git-send-email-farman@linux.vnet.ibm.com> (raw)

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

             reply	other threads:[~2014-01-14 19:16 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-14 19:16 Eric Farman [this message]
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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1389726986-8600-1-git-send-email-farman@linux.vnet.ibm.com \
    --to=farman@linux.vnet.ibm.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).