[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [PATCH v7 05/10] block: Introduce "drained begin/end" A
From: |
Stefan Hajnoczi |
Subject: |
Re: [Qemu-block] [PATCH v7 05/10] block: Introduce "drained begin/end" API |
Date: |
Fri, 23 Oct 2015 16:13:41 +0100 |
User-agent: |
Mutt/1.5.24 (2015-08-30) |
On Fri, Oct 23, 2015 at 11:08:09AM +0800, Fam Zheng wrote:
> +void bdrv_drained_begin(BlockDriverState *bs)
> +{
> + if (!bs->quiesce_counter++) {
> + aio_disable_external(bdrv_get_aio_context(bs));
> + }
> + bdrv_drain(bs);
> +}
> +
> +void bdrv_drained_end(BlockDriverState *bs)
> +{
> + assert(bs->quiesce_counter > 0);
> + if (--bs->quiesce_counter > 0) {
> + return;
> + }
> + aio_enable_external(bdrv_get_aio_context(bs));
> +}
Why is quiesce_counter necessary? Can't we just rely on AioContext's
disable_external_cnt?
void bdrv_drained_begin(BlockDriverState *bs)
{
aio_disable_external(bdrv_get_aio_context(bs));
bdrv_drain(bs);
}
void bdrv_drained_end(BlockDriverState *bs)
{
aio_enable_external(bdrv_get_aio_context(bs));
}
- [Qemu-block] [PATCH v7 00/10] block: Protect nested event loop with bdrv_drained_begin and bdrv_drained_end, Fam Zheng, 2015/10/22
- [Qemu-block] [PATCH v7 01/10] aio: Add "is_external" flag for event handlers, Fam Zheng, 2015/10/22
- [Qemu-block] [PATCH v7 02/10] nbd: Mark fd handlers client type as "external", Fam Zheng, 2015/10/22
- [Qemu-block] [PATCH v7 03/10] dataplane: Mark host notifiers' client type as "external", Fam Zheng, 2015/10/22
- [Qemu-block] [PATCH v7 04/10] aio: introduce aio_{disable, enable}_external, Fam Zheng, 2015/10/22
- [Qemu-block] [PATCH v7 05/10] block: Introduce "drained begin/end" API, Fam Zheng, 2015/10/22
- [Qemu-block] [PATCH v7 06/10] block: Add "drained begin/end" for transactional external snapshot, Fam Zheng, 2015/10/22
- [Qemu-block] [PATCH v7 07/10] block: Add "drained begin/end" for transactional backup, Fam Zheng, 2015/10/22
- [Qemu-block] [PATCH v7 08/10] block: Add "drained begin/end" for transactional blockdev-backup, Fam Zheng, 2015/10/22
- [Qemu-block] [PATCH v7 09/10] block: Add "drained begin/end" for internal snapshot, Fam Zheng, 2015/10/22
- [Qemu-block] [PATCH v7 10/10] tests: Add test case for aio_disable_external, Fam Zheng, 2015/10/22
- Re: [Qemu-block] [PATCH v7 00/10] block: Protect nested event loop with bdrv_drained_begin and bdrv_drained_end, Kevin Wolf, 2015/10/23
- Re: [Qemu-block] [PATCH v7 00/10] block: Protect nested event loop with bdrv_drained_begin and bdrv_drained_end, Stefan Hajnoczi, 2015/10/23