On 10.07.19 03:05, John Snow wrote: > The way bitmap backups work is by starting at 75% if it needs > to copy just 25% of the disk. Although there is this comment: > /* TODO job_progress_set_remaining() would make more sense */ So... > The way sync=top currently works, however, is to start at 0% and then > never update the progress if it doesn't copy a region. If it needs to > copy 25% of the disk, we'll finish at 25%. > > Update the progress when we skip regions. Wouldn’t it be more correct to decrease the job length? Max > Signed-off-by: John Snow > --- > block/backup.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/block/backup.c b/block/backup.c > index a64b768e24..38c4a688c6 100644 > --- a/block/backup.c > +++ b/block/backup.c > @@ -417,6 +417,7 @@ static int coroutine_fn backup_loop(BackupBlockJob *job) > if (job->sync_mode == MIRROR_SYNC_MODE_TOP && > bdrv_is_unallocated_range(bs, offset, job->cluster_size)) > { > + job_progress_update(&job->common.job, job->cluster_size); > bdrv_reset_dirty_bitmap(job->copy_bitmap, offset, > job->cluster_size); > continue; >