Il 21/02/2013 16:25, Dietmar Maurer ha scritto:
>>> I just posted v5 of the patch. But I get a slow down of 15% if I use
>>> bdrv_is_allocated_above. (tested with empty qcow2 files.)
>>
>> Strange, for an unallocated area bdrv_is_allocated_above and bdrv_read really
>> do the same thing apart from writing the zeroes to the buffer.
>> The code looks okay, does a profile say where the time is being spent?
>> Or does the is_allocated_above ever trigger (are you using metadata
>> preallocation)?
> 
> Yes, I use metadata preallocation. But that does not explain why it gets 
> slower?

Because then this is not an empty qcow2 file, it is a full qcow2 file
where reads are particularly cheap because they always hit holes.  It is
the worst case for this optimization, I think 15% is not wonderful but
not particularly bad.

>> BTW, any reason why BACKUP_BLOCKS_PER_CLUSTER is hardcoded and you're
>> not using the cluster size from bdrv_get_info?
> 
> A backup includes several block devices, and I want to have the same cluster 
> size
> for all. It makes the code easier.

Paolo

Reply via email to