[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [PATCH v2 10/12] block: Introduce BlockDriver.bdrv_drai
From: |
Kevin Wolf |
Subject: |
Re: [Qemu-block] [PATCH v2 10/12] block: Introduce BlockDriver.bdrv_drain callback |
Date: |
Mon, 12 Oct 2015 16:17:35 +0200 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
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 <address@hidden>
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
- Re: [Qemu-block] [PATCH v2 05/12] block: Introduce "drained begin/end" API, (continued)
[Qemu-block] [PATCH v2 08/12] block: Add "drained begin/end" for transactional blockdev-backup, Fam Zheng, 2015/10/12
[Qemu-block] [PATCH v2 07/12] block: Add "drained begin/end" for transactional backup, Fam Zheng, 2015/10/12
[Qemu-block] [PATCH v2 11/12] qed: Implement .bdrv_drain, Fam Zheng, 2015/10/12
[Qemu-block] [PATCH v2 10/12] block: Introduce BlockDriver.bdrv_drain callback, Fam Zheng, 2015/10/12
- Re: [Qemu-block] [PATCH v2 10/12] block: Introduce BlockDriver.bdrv_drain callback,
Kevin Wolf <=
[Qemu-block] [PATCH v2 12/12] tests: Add test case for aio_disable_external, Fam Zheng, 2015/10/12
[Qemu-block] [PATCH v2 01/12] aio: Add "is_external" flag for event handlers, Fam Zheng, 2015/10/15
[Qemu-block] [PATCH v2 02/12] nbd: Mark fd handlers client type as "external", Fam Zheng, 2015/10/15
[Qemu-block] [PATCH v2 06/12] block: Add "drained begin/end" for transactional external snapshot, Fam Zheng, 2015/10/15
[Qemu-block] [PATCH v2 09/12] block: Add "drained begin/end" for internal snapshot, Fam Zheng, 2015/10/15