[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v11 7/9] qcow2: Resize the cache upon image resi
From: |
Kevin Wolf |
Subject: |
Re: [Qemu-devel] [PATCH v11 7/9] qcow2: Resize the cache upon image resizing |
Date: |
Wed, 26 Sep 2018 12:43:03 +0200 |
User-agent: |
Mutt/1.9.1 (2017-09-22) |
Am 25.09.2018 um 00:53 hat Leonid Bloch geschrieben:
> The caches are now recalculated upon image resizing. This is done
> because the new default behavior of assigning L2 cache relatively to
> the image size, implies that the cache will be adapted accordingly
> after an image resize.
>
> Signed-off-by: Leonid Bloch <address@hidden>
> Reviewed-by: Alberto Garcia <address@hidden>
> ---
> block/qcow2.c | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff --git a/block/qcow2.c b/block/qcow2.c
> index 589f6c1b1c..c68f896c66 100644
> --- a/block/qcow2.c
> +++ b/block/qcow2.c
> @@ -3418,6 +3418,7 @@ static int coroutine_fn
> qcow2_co_truncate(BlockDriverState *bs, int64_t offset,
> uint64_t old_length;
> int64_t new_l1_size;
> int ret;
> + QDict *options;
>
> if (prealloc != PREALLOC_MODE_OFF && prealloc != PREALLOC_MODE_METADATA
> &&
> prealloc != PREALLOC_MODE_FALLOC && prealloc != PREALLOC_MODE_FULL)
> @@ -3642,6 +3643,8 @@ static int coroutine_fn
> qcow2_co_truncate(BlockDriverState *bs, int64_t offset,
> }
> }
>
> + bs->total_sectors = offset / BDRV_SECTOR_SIZE;
> +
> /* write updated header.size */
> offset = cpu_to_be64(offset);
> ret = bdrv_pwrite_sync(bs->file, offsetof(QCowHeader, size),
> @@ -3652,6 +3655,13 @@ static int coroutine_fn
> qcow2_co_truncate(BlockDriverState *bs, int64_t offset,
> }
>
> s->l1_vm_state_index = new_l1_size;
> +
> + /* Update cache sizes */
> + options = qdict_clone_shallow(bs->options);
> + ret = qcow2_update_options(bs, options, s->flags, errp);
> + if (ret < 0) {
> + goto fail;
> + }
Isn't options leaked, both in success and error cases?
Kevin
[Qemu-devel] [PATCH v11 8/9] qcow2: Set the default cache-clean-interval to 10 minutes, Leonid Bloch, 2018/09/24
[Qemu-devel] [PATCH v11 9/9] qcow2: Explicit number replaced by a constant, Leonid Bloch, 2018/09/24
[Qemu-devel] [PATCH v11 6/9] qcow2: Increase the default upper limit on the L2 cache size, Leonid Bloch, 2018/09/24
[Qemu-devel] [PATCH v11 4/9] qcow2: Avoid duplication in setting the refcount cache size, Leonid Bloch, 2018/09/24
[Qemu-devel] [PATCH v11 5/9] qcow2: Assign the L2 cache relatively to the image size, Leonid Bloch, 2018/09/24
[Qemu-devel] [PATCH v11 3/9] qcow2: Make sizes more humanly readable, Leonid Bloch, 2018/09/24