[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v9 02/10] qmp: Add block-dirty-bitmap-add and bl
From: |
Stefan Hajnoczi |
Subject: |
Re: [Qemu-devel] [PATCH v9 02/10] qmp: Add block-dirty-bitmap-add and block-dirty-bitmap-remove |
Date: |
Tue, 9 Dec 2014 16:00:59 +0000 |
User-agent: |
Mutt/1.5.23 (2014-03-12) |
On Mon, Dec 01, 2014 at 03:30:08PM -0500, John Snow wrote:
> diff --git a/block.c b/block.c
> index e5c6ccf..3f27519 100644
> --- a/block.c
> +++ b/block.c
> @@ -5420,6 +5420,25 @@ int bdrv_get_dirty(BlockDriverState *bs,
> BdrvDirtyBitmap *bitmap, int64_t sector
> }
> }
>
> +#define BDB_MIN_DEF_GRANULARITY 4096
> +#define BDB_MAX_DEF_GRANULARITY 65536
> +#define BDB_DEFAULT_GRANULARITY BDB_MAX_DEF_GRANULARITY
> +
> +uint64_t bdrv_dbm_calc_def_granularity(BlockDriverState *bs)
Long names are unwieldy but introducing multiple abbreviations is not a
good solution, it makes the code more confusing (BDB vs dbm).
I would call the function bdrv_get_default_bitmap_granularity().
The constants weren't necessary since the point of this function is to
capture the default value. No one else should use the constants -
otherwise there is a high probability that they are reimplementing this
logic. I would just leave them as literals in the code.
> diff --git a/blockdev.c b/blockdev.c
> index 5651a8e..4d30b09 100644
> --- a/blockdev.c
> +++ b/blockdev.c
> @@ -1894,6 +1894,60 @@ void qmp_block_set_io_throttle(const char *device,
> int64_t bps, int64_t bps_rd,
> aio_context_release(aio_context);
> }
>
> +void qmp_block_dirty_bitmap_add(const char *device, const char *name,
> + bool has_granularity, int64_t granularity,
> + Error **errp)
> +{
> + BlockDriverState *bs;
> +
> + bs = bdrv_lookup_bs(device, NULL, errp);
Markus: I think we need to support node-name here so dirty bitmaps can
be applied at any node in the graph?
> + if (!bs) {
> + return;
> + }
These new monitor commands need to acquire/release the
BlockDriverState's AioContext like the other monitor commands. This
ensures that BDS accesses in other threads are synchronized (stopped
while we run).
AioContext *aio_context;
aio_context = bdrv_get_aio_context(bs);
aio_context_acquire(aio_context);
...
out:
aio_context_release(aio_context);
pgpJ0sk1QlUnw.pgp
Description: PGP signature
- [Qemu-devel] [PATCH v9 00/10] block: Incremental backup series, John Snow, 2014/12/01
- [Qemu-devel] [PATCH v9 01/10] qapi: Add optional field "name" to block dirty bitmap, John Snow, 2014/12/01
- [Qemu-devel] [PATCH v9 03/10] block: Introduce bdrv_dirty_bitmap_granularity(), John Snow, 2014/12/01
- [Qemu-devel] [PATCH v9 04/10] hbitmap: Add hbitmap_copy, John Snow, 2014/12/01
- [Qemu-devel] [PATCH v9 02/10] qmp: Add block-dirty-bitmap-add and block-dirty-bitmap-remove, John Snow, 2014/12/01
- Re: [Qemu-devel] [PATCH v9 02/10] qmp: Add block-dirty-bitmap-add and block-dirty-bitmap-remove, Eric Blake, 2014/12/01
- Re: [Qemu-devel] [PATCH v9 02/10] qmp: Add block-dirty-bitmap-add and block-dirty-bitmap-remove,
Stefan Hajnoczi <=
- Re: [Qemu-devel] [PATCH v9 02/10] qmp: Add block-dirty-bitmap-add and block-dirty-bitmap-remove, Markus Armbruster, 2014/12/10
- Re: [Qemu-devel] [PATCH v9 02/10] qmp: Add block-dirty-bitmap-add and block-dirty-bitmap-remove, Stefan Hajnoczi, 2014/12/12
- Re: [Qemu-devel] [PATCH v9 02/10] qmp: Add block-dirty-bitmap-add and block-dirty-bitmap-remove, Markus Armbruster, 2014/12/15
- Re: [Qemu-devel] [PATCH v9 02/10] qmp: Add block-dirty-bitmap-add and block-dirty-bitmap-remove, John Snow, 2014/12/17
- Re: [Qemu-devel] [PATCH v9 02/10] qmp: Add block-dirty-bitmap-add and block-dirty-bitmap-remove, Markus Armbruster, 2014/12/17
[Qemu-devel] [PATCH v9 07/10] qmp: Add support of "dirty-bitmap" sync mode for drive-backup, John Snow, 2014/12/01
[Qemu-devel] [PATCH v9 06/10] qmp: Add block-dirty-bitmap-enable and block-dirty-bitmap-disable, John Snow, 2014/12/01