From: Paolo Bonzini <pbonzini@redhat.com>
To: Fam Zheng <famz@redhat.com>, qemu-devel@nongnu.org
Cc: Kevin Wolf <kwolf@redhat.com>, Stefan Hajnoczi <stefanha@redhat.com>
Subject: Re: [Qemu-devel] [PATCH v2 0/7] virtio-scsi: Asynchronous cancellation
Date: Wed, 24 Sep 2014 13:10:08 +0200 [thread overview]
Message-ID: <5422A690.2020904@redhat.com> (raw)
In-Reply-To: <1411547278-25915-1-git-send-email-famz@redhat.com>
Il 24/09/2014 10:27, Fam Zheng ha scritto:
> v2: Address Paolo's comments:
> - Drop scsi_req_abort.
> - Split patch 1.
> - Use NotifierList.
> - Track the number of cancelled requests in virtio-scsi.
>
> This series changes VIRTIO_SCSI_T_TMF_ABORT_TASK and
> VIRTIO_SCSI_T_TMF_ABORT_TASK_SET emulation to asynchronous by making use of
> bdrv_aio_cancel_async.
>
> Before, when guest cancels a SCSI command, we use a nested poll loop to wait
> until the request is cancelled or completed before returning. This blocks the
> whole vm and makes the guest unresponsive if the backend block device takes
> time to complete it, possibly because of slow IO, throttling, network issue,
> etc..
>
> Now we return to the guest to allow vcpus to run before completing the TMF, and
> only after all the requests have been canceled, we notify the guest about the
> completing of the TMF command.
>
>
>
> Fam Zheng (7):
> scsi: Drop scsi_req_abort
> scsi-generic: Handle canceled request in scsi_command_complete
> scsi-bus: Unify request unref in scsi_req_cancel
> scsi: Drop SCSIReqOps.cancel_io
> scsi: Introduce scsi_req_canceled
> scsi: Introduce scsi_req_cancel_async
> virtio-scsi: Handle TMF request cancellation asynchronously
>
> hw/scsi/scsi-bus.c | 48 +++++++++++++++++++----------
> hw/scsi/scsi-disk.c | 59 ++++++++++-------------------------
> hw/scsi/scsi-generic.c | 37 ++++++----------------
> hw/scsi/spapr_vscsi.c | 11 +++++--
> hw/scsi/virtio-scsi.c | 84 +++++++++++++++++++++++++++++++++++++++++++++-----
> include/hw/scsi/scsi.h | 5 ++-
> 6 files changed, 146 insertions(+), 98 deletions(-)
>
I didn't review 5-7 yet, and they are more complicated so I'll start by
applying the nice cleanup part (1-4).
Thanks!
Paolo
prev parent reply other threads:[~2014-09-24 11:10 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-24 8:27 [Qemu-devel] [PATCH v2 0/7] virtio-scsi: Asynchronous cancellation Fam Zheng
2014-09-24 8:27 ` [Qemu-devel] [PATCH v2 1/7] scsi: Drop scsi_req_abort Fam Zheng
2014-09-24 8:27 ` [Qemu-devel] [PATCH v2 2/7] scsi-generic: Handle canceled request in scsi_command_complete Fam Zheng
2014-09-24 8:27 ` [Qemu-devel] [PATCH v2 3/7] scsi-bus: Unify request unref in scsi_req_cancel Fam Zheng
2014-09-24 8:27 ` [Qemu-devel] [PATCH v2 4/7] scsi: Drop SCSIReqOps.cancel_io Fam Zheng
2014-09-24 8:27 ` [Qemu-devel] [PATCH v2 5/7] scsi: Introduce scsi_req_canceled Fam Zheng
2014-09-24 11:19 ` Paolo Bonzini
2014-09-24 8:27 ` [Qemu-devel] [PATCH v2 6/7] scsi: Introduce scsi_req_cancel_async Fam Zheng
2014-09-24 11:15 ` Paolo Bonzini
2014-09-24 8:27 ` [Qemu-devel] [PATCH v2 7/7] virtio-scsi: Handle TMF request cancellation asynchronously Fam Zheng
2014-09-24 11:18 ` Paolo Bonzini
2014-09-25 2:01 ` Fam Zheng
2014-09-25 8:40 ` Paolo Bonzini
2014-09-24 11:10 ` Paolo Bonzini [this message]
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=5422A690.2020904@redhat.com \
--to=pbonzini@redhat.com \
--cc=famz@redhat.com \
--cc=kwolf@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@redhat.com \
/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).