From: Paolo Bonzini <pbonzini@redhat.com>
To: Asias He <asias@redhat.com>
Cc: kvm@vger.kernel.org, "Michael S. Tsirkin" <mst@redhat.com>,
virtualization@lists.linux-foundation.org,
target-devel@vger.kernel.org,
Stefan Hajnoczi <stefanha@redhat.com>
Subject: Re: [PATCH 1/2] tcm_vhost: Wait for pending requests in vhost_scsi_flush()
Date: Tue, 12 Mar 2013 09:21:51 +0100 [thread overview]
Message-ID: <513EE59F.4020306@redhat.com> (raw)
In-Reply-To: <20130312013135.GB1480@hj.localdomain>
Il 12/03/2013 02:31, Asias He ha scritto:
> On Mon, Mar 11, 2013 at 12:36:37PM +0100, Paolo Bonzini wrote:
>> Il 11/03/2013 06:09, Asias He ha scritto:
>>> This patch makes vhost_scsi_flush() wait for all the pending requests
>>> issued before the flush operation to be finished.
>>
>> There is no protection against issuing concurrent flush operations. If
>> we later would like to make the flush a ioctl (for example for migration
>> purposes), it would be confusing, and I'm not sure how you could extend
>> the during_flush machinery.
>
> vhost_scsi_flush() is called under the vs->dev.mutex lock.
Ah, ok.
>> What about making vhost_scsi_flush() wait for all pending requests,
>> including those issues during the flush operation?
>
> This will take unbonded time if guest keep sending requests.
Yes, that's correct, but flush doesn't really mean much if new requests
can come in (unlike _cache_ flushes like SYNCHRONIZE CACHE). In the end
you'll have to stop the VM first and then issue the flush. At this
point, it does not change much if you wait for previous requests or all
requests, and I suspect that waiting for all requests simplifies the
code noticeably.
>> Then you can easily
>> support concurrent flushes; just add a waitqueue and wake_up_all at the
>> end of the flush operation.
>
> I am not sure why we want concurrent flushes. The flush thing is
> already getting complex.
Yeah, it is too complex...
Paolo
>> BTW, adding such a ioctl as part of this patch would probably be a good
>> thing to do anyway.
>>
>> Paolo
>
next prev parent reply other threads:[~2013-03-12 8:21 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1362978579-13322-1-git-send-email-asias@redhat.com>
2013-03-11 5:09 ` [PATCH 1/2] tcm_vhost: Wait for pending requests in vhost_scsi_flush() Asias He
2013-03-11 11:36 ` Paolo Bonzini
2013-03-11 11:53 ` Michael S. Tsirkin
2013-03-11 12:15 ` Paolo Bonzini
2013-03-12 1:34 ` Asias He
2013-03-12 1:31 ` Asias He
2013-03-12 8:21 ` Paolo Bonzini [this message]
2013-03-13 5:16 ` Asias He
2013-03-19 2:03 ` Asias He
2013-03-11 5:09 ` [PATCH 2/2] tcm_vhost: Wait for pending requests in vhost_scsi_clear_endpoint() Asias He
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=513EE59F.4020306@redhat.com \
--to=pbonzini@redhat.com \
--cc=asias@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=mst@redhat.com \
--cc=stefanha@redhat.com \
--cc=target-devel@vger.kernel.org \
--cc=virtualization@lists.linux-foundation.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).