From: Fam Zheng <famz@redhat.com>
To: Kevin Wolf <kwolf@redhat.com>
Cc: Max Reitz <mreitz@redhat.com>,
Stefan Hajnoczi <stefanha@redhat.com>,
qemu-devel <qemu-devel@nongnu.org>,
qemu-block <qemu-block@nongnu.org>,
Manos Pitsidianakis <el13635@mail.ntua.gr>
Subject: Re: [Qemu-devel] [PATCH v2 1/3] block: add bdrv_co_drain_end callback
Date: Fri, 22 Sep 2017 20:34:43 +0800 [thread overview]
Message-ID: <20170922123400.GA32000@lemon> (raw)
In-Reply-To: <20170922110320.GD12295@localhost.localdomain>
On Fri, 09/22 13:03, Kevin Wolf wrote:
> Am 22.09.2017 um 04:30 hat Fam Zheng geschrieben:
> > On Thu, 09/21 18:39, Manos Pitsidianakis wrote:
> > > On Thu, Sep 21, 2017 at 09:29:43PM +0800, Fam Zheng wrote:
> > > > On Thu, 09/21 16:17, Manos Pitsidianakis wrote:
> > > It might imply to someone that there's an assert(drv->bdrv_co_drain_begin &&
> > > drv->bdrv_co_drain_end) somewhere unless you state they don't have to be
> > > implemented at the same time. How about we be completely explicit:
> > >
> > > bdrv_co_drain_begin is called if implemented in the beggining of a
> > > drain operation to drain and stop any internal sources of requests in
> > > the driver.
> > > bdrv_co_drain_end is called if implemented at the end of the drain.
> > >
> > > They should be used by the driver to e.g. manage scheduled I/O
> > > requests, or toggle an internal state. After the end of the drain new
> > > requests will continue normally.
> > >
> > > I hope this is easier for a reader to understand!
> >
> > I don't like the inconsistent semantics of when the drained section
> > ends, if we allow drivers to implement bdrv_co_drain_begin but omit
> > bdrv_co_drained_end. Currently the point where the section ends is,
> > as said in the comment, when next I/O callback is invoked. Now we are
> > adding the explicit ".bdrv_co_drain_end" into the fomular, if we still
> > keep the previous convention, the interface contract is just mixed of
> > two things for no good reason. I don't think it's technically
> > necessary.
>
> We don't keep the convention with the next I/O callback. We just allow
> drivers to omit an empty implementation of either callback, which seems
> to be a very sensible default to me.
>
OK, I'm fine with this.
Fam
next prev parent reply other threads:[~2017-09-22 12:35 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-09-21 13:17 [Qemu-devel] [PATCH v2 0/3] add bdrv_co_drain_begin/end BlockDriver callbacks Manos Pitsidianakis
2017-09-21 13:17 ` [Qemu-devel] [PATCH v2 1/3] block: add bdrv_co_drain_end callback Manos Pitsidianakis
2017-09-21 13:29 ` Fam Zheng
2017-09-21 15:39 ` Manos Pitsidianakis
2017-09-22 2:30 ` Fam Zheng
2017-09-22 11:03 ` Kevin Wolf
2017-09-22 12:34 ` Fam Zheng [this message]
2017-09-21 13:30 ` Fam Zheng
2017-09-21 13:17 ` [Qemu-devel] [PATCH v2 2/3] block: rename bdrv_co_drain to bdrv_co_drain_begin Manos Pitsidianakis
2017-09-21 13:30 ` Fam Zheng
2017-09-21 13:17 ` [Qemu-devel] [PATCH v2 3/3] block/throttle.c: add bdrv_co_drain_begin/end callbacks Manos Pitsidianakis
2017-09-21 13:31 ` Fam Zheng
2017-09-22 10:18 ` Stefan Hajnoczi
2017-09-21 13:35 ` [Qemu-devel] [PATCH v2 0/3] add bdrv_co_drain_begin/end BlockDriver callbacks Fam Zheng
2017-09-21 13:42 ` Manos Pitsidianakis
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=20170922123400.GA32000@lemon \
--to=famz@redhat.com \
--cc=el13635@mail.ntua.gr \
--cc=kwolf@redhat.com \
--cc=mreitz@redhat.com \
--cc=qemu-block@nongnu.org \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.