From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55083) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZldvD-0005xB-GB for qemu-devel@nongnu.org; Mon, 12 Oct 2015 10:17:52 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Zldv9-0000VW-H8 for qemu-devel@nongnu.org; Mon, 12 Oct 2015 10:17:51 -0400 Date: Mon, 12 Oct 2015 16:17:35 +0200 From: Kevin Wolf Message-ID: <20151012141735.GG4153@noname.str.redhat.com> References: <1444650651-26227-1-git-send-email-famz@redhat.com> <1444650651-26227-11-git-send-email-famz@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1444650651-26227-11-git-send-email-famz@redhat.com> Subject: Re: [Qemu-devel] [PATCH v2 10/12] block: Introduce BlockDriver.bdrv_drain callback List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Fam Zheng Cc: Paolo Bonzini , qemu-block@nongnu.org, qemu-devel@nongnu.org, Stefan Hajnoczi 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 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