On Wed 22 Apr 2015 12:26:02 PM CEST, Stefan Hajnoczi wrote:

>> Large disk images need large L2 caches in order to maximize their I/O
>> performance. However setting a correct size for the cache is not
>> necessarily easy since apart from the image size, it also depends on
>> other factors like its usage patterns or whether it's part of a
>> backing chain.
>> 
>> In order to be able to set a very large cache size to cover the
>> worst-case scenarios and yet prevent an unnecessary waste of memory,
>> this patch modifies the qcow2 cache algorithm so the memory for each
>> entry is allocated only when it's actually needed.
>> 
>> This also improves the scenarios with smaller images: the current
>> default L2 cache size can map a whole 8GB disk, so those smaller than
>> that are allocating cache memory that can never be used.
>
> What measurable improvement does this patch make?
>
> Buffers allocated upfront are not touched, so they don't actually
> consume physical memory.

For a cache size of 128MB, the PSS is actually ~10MB larger without the
patch, which seems to come from posix_memalign().

But yeah, for smaller caches there's no difference. I should probably
add a timer to free unused cache entries after some expiration
time. What do you think?

Berto

Reply via email to