23.07.2020 11:35, Max Reitz wrote:
> On 01.06.20 20:11, Vladimir Sementsov-Ogievskiy wrote:
>> The further change of moving backup to be a on block-copy call will
>
> -on?
>
>> make copying chunk-size and cluster-size a separate things. So, even
>
> s/a/two/
>
>> with 64k cluster sized qcow2 image, default chunk would be 1M.
>> Test 219 depends on specified chunk-size. Update it for explicit
>> chunk-size for backup as for mirror.
>>
>> Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
>> ---
>> tests/qemu-iotests/219 | 13 +++++++------
>> 1 file changed, 7 insertions(+), 6 deletions(-)
>>
>> diff --git a/tests/qemu-iotests/219 b/tests/qemu-iotests/219
>> index db272c5249..2bbed28f39 100755
>> --- a/tests/qemu-iotests/219
>> +++ b/tests/qemu-iotests/219
>> @@ -203,13 +203,13 @@ with iotests.FilePath('disk.img') as disk_path, \
>> # but related to this also automatic state transitions like job
>> # completion), but still get pause points often enough to avoid making this
>> # test very slow, it's important to have the right ratio between speed and
>> - # buf_size.
>> + # copy-chunk-size.
>> #
>> - # For backup, buf_size is hard-coded to the source image cluster size (64k),
>> - # so we'll pick the same for mirror. The slice time, i.e. the granularity
>> - # of the rate limiting is 100ms. With a speed of 256k per second, we can
>> - # get four pause points per second. This gives us 250ms per iteration,
>> - # which should be enough to stay deterministic.
>> + # Chose 64k copy-chunk-size both for mirror (by buf_size) and backup (by
>> + # x-max-chunk). The slice time, i.e. the granularity of the rate limiting
>> + # is 100ms. With a speed of 256k per second, we can get four pause points
>> + # per second. This gives us 250ms per iteration, which should be enough to
>> + # stay deterministic.
>
> Don’t we also have to limit the number of workers to 1 so we actually
> keep 250 ms per iteration instead of just finishing four requests
> immediately, then pausing for a second?
Block-copy rate limiter works good enough: it will not start too much requests.
>
>> test_job_lifecycle(vm, 'drive-mirror', has_ready=True, job_args={
>> 'device': 'drive0-node',
>> @@ -226,6 +226,7 @@ with iotests.FilePath('disk.img') as disk_path, \
>> 'target': copy_path,
>> 'sync': 'full',
>> 'speed': 262144,
>> + 'x-max-chunk': 65536,
>> 'auto-finalize': auto_finalize,
>> 'auto-dismiss': auto_dismiss,
>> })
>>
>
>
--
Best regards,
Vladimir