[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC PATCH COLO v2 10/13] Backup: clear all bitmap when
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [RFC PATCH COLO v2 10/13] Backup: clear all bitmap when doing block checkpoint |
Date: |
Wed, 25 Mar 2015 13:55:23 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0 |
On 25/03/2015 10:36, Wen Congyang wrote:
>
> +void backup_do_checkpoint(BlockJob *job, Error **errp)
> +{
> + BackupBlockJob *backup_job = container_of(job, BackupBlockJob, common);
> +
> + if (job->driver != &backup_job_driver) {
> + error_setg(errp, "It is not backup job");
> + return;
> + }
> +
> + hbitmap_reset_all(backup_job->bitmap);
> +}
Please add instead a block_job_do_checkpoint API, and a do_checkpoint
function pointer to BlockJobDriver.
> +{
> +#if 0
> + hbitmap_reset(hb, 0, hb->size << hb->granularity);
> +#else
> + uint64_t size = hb->size;
> + unsigned int i;
> +
> + /* Same as hbitmap_alloc() except memset() */
> + for (i = HBITMAP_LEVELS; i-- > 0; ) {
This can be "--i >= 1"...
> + size = MAX((size + BITS_PER_LONG - 1) >> BITS_PER_LEVEL, 1);
> + memset(hb->levels[i], 0, size * sizeof(unsigned long));
> + }
> +
> + assert(size == 1);
> + hb->levels[0][0] |= 1UL << (BITS_PER_LONG - 1);
... if you use "=" instead of "|=" here.
> +#endif
> +}
Please pick one implementation (no #if), and also add a testcase to
tests/test-hbitmap.c.
Paolo
- Re: [Qemu-devel] [RFC PATCH COLO v2 06/13] NBD client: implement block driver interfaces for block replication, (continued)
- [Qemu-devel] [RFC PATCH COLO v2 04/13] Add new block driver interfaces to control block replication, Wen Congyang, 2015/03/25
- [Qemu-devel] [RFC PATCH COLO v2 05/13] quorum: implement block driver interfaces for block replication, Wen Congyang, 2015/03/25
- [Qemu-devel] [RFC PATCH COLO v2 07/13] allow writing to the backing file, Wen Congyang, 2015/03/25
- [Qemu-devel] [RFC PATCH COLO v2 10/13] Backup: clear all bitmap when doing block checkpoint, Wen Congyang, 2015/03/25
- Re: [Qemu-devel] [RFC PATCH COLO v2 10/13] Backup: clear all bitmap when doing block checkpoint,
Paolo Bonzini <=
- [Qemu-devel] [RFC PATCH COLO v2 08/13] Allow creating backup jobs when opening BDS, Wen Congyang, 2015/03/25
[Qemu-devel] [RFC PATCH COLO v2 12/13] skip nbd_target when starting block replication, Wen Congyang, 2015/03/25