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
