From: Kevin Wolf <kwolf@redhat.com>
To: Fam Zheng <famz@redhat.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
qemu-block@nongnu.org, qemu-devel@nongnu.org,
Stefan Hajnoczi <stefanha@redhat.com>
Subject: Re: [Qemu-devel] [PATCH v2 10/12] block: Introduce BlockDriver.bdrv_drain callback
Date: Mon, 12 Oct 2015 16:17:35 +0200 [thread overview]
Message-ID: <20151012141735.GG4153@noname.str.redhat.com> (raw)
In-Reply-To: <1444650651-26227-11-git-send-email-famz@redhat.com>
Am 12.10.2015 um 13:50 hat Fam Zheng geschrieben:
> Drivers can have internal request sources that generate IO, like the
> need_check_timer in QED. Since we want quiesced periods that contain
> nested event loops in block layer, we need to have a way to disable such
> event sources.
>
> Block drivers must implement the "bdrv_drain" callback if it has any
> internal sources that can generate I/O activity, like a timer or a
> worker thread (even in a library) that can schedule QEMUBH in an
> asynchronous callback.
>
> Signed-off-by: Fam Zheng <famz@redhat.com>
I think the right interface would be .bdrv_drain_begin/end callbacks so
that the timers or background work can be reenabled again after the
drained section.
As it happens, QED doesn't need this because you chose to complete the
outstanding work and the timer only needs to be reenabled on the next
write operation. Fine with me, we can extend the interface as soon as we
really need it.
(Though, actually, I'm not sure... I think I'll comment on the QED
patch.)
Kevin
next prev parent reply other threads:[~2015-10-12 14:17 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-12 11:50 [Qemu-devel] [PATCH v2 00/12] block: bdrv_drained_begin/end for transactions on dataplane devices Fam Zheng
2015-10-12 11:50 ` [Qemu-devel] [PATCH v2 01/12] aio: Add "is_external" flag for event handlers Fam Zheng
2015-10-12 11:50 ` [Qemu-devel] [PATCH v2 02/12] nbd: Mark fd handlers client type as "external" Fam Zheng
2015-10-12 11:50 ` [Qemu-devel] [PATCH v2 03/12] dataplane: Mark host notifiers' " Fam Zheng
2015-10-12 11:50 ` [Qemu-devel] [PATCH v2 04/12] aio: introduce aio_{disable, enable}_external Fam Zheng
2015-10-12 11:50 ` [Qemu-devel] [PATCH v2 05/12] block: Introduce "drained begin/end" API Fam Zheng
2015-10-12 13:59 ` Kevin Wolf
2015-10-12 14:27 ` Paolo Bonzini
2015-10-13 9:31 ` Kevin Wolf
2015-10-13 10:39 ` Paolo Bonzini
2015-10-13 11:12 ` Kevin Wolf
2015-10-12 11:50 ` [Qemu-devel] [PATCH v2 06/12] block: Add "drained begin/end" for transactional external snapshot Fam Zheng
2015-10-12 11:50 ` [Qemu-devel] [PATCH v2 07/12] block: Add "drained begin/end" for transactional backup Fam Zheng
2015-10-12 11:50 ` [Qemu-devel] [PATCH v2 08/12] block: Add "drained begin/end" for transactional blockdev-backup Fam Zheng
2015-10-12 11:50 ` [Qemu-devel] [PATCH v2 09/12] block: Add "drained begin/end" for internal snapshot Fam Zheng
2015-10-12 11:50 ` [Qemu-devel] [PATCH v2 10/12] block: Introduce BlockDriver.bdrv_drain callback Fam Zheng
2015-10-12 14:17 ` Kevin Wolf [this message]
2015-10-12 11:50 ` [Qemu-devel] [PATCH v2 11/12] qed: Implement .bdrv_drain Fam Zheng
2015-10-12 14:23 ` Kevin Wolf
2015-10-12 11:50 ` [Qemu-devel] [PATCH v2 12/12] tests: Add test case for aio_disable_external Fam Zheng
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=20151012141735.GG4153@noname.str.redhat.com \
--to=kwolf@redhat.com \
--cc=famz@redhat.com \
--cc=pbonzini@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 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).