qemu-block
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-block] [PATCH 1/1] qcow2: avoid extra flushes in qcow2


From: Kevin Wolf
Subject: Re: [Qemu-block] [PATCH 1/1] qcow2: avoid extra flushes in qcow2
Date: Fri, 3 Jun 2016 10:38:59 +0200
User-agent: Mutt/1.5.21 (2010-09-15)

Am 02.06.2016 um 17:58 hat Denis V. Lunev geschrieben:
> The problem with excessive flushing was found by a couple of performance
> tests:
>   - parallel directory tree creation (from 2 processes)
>   - 32 cached writes + fsync at the end in a loop
> 
> For the first one results improved from 2.6 loops/sec to 3.5 loops/sec.
> Each loop creates 10^3 directories with 10 files in each.
> 
> For the second one results improved from ~600 fsync/sec to ~1100
> fsync/sec. Though, it was run on SSD so it probably won't show such
> performance gain on rotational media.
> 
> qcow2_cache_flush() calls bdrv_flush() unconditionally after writing
> cache entries of a particular cache. This can lead to as many as
> 2 additional fdatasyncs inside bdrv_flush.
> 
> We can simply skip all fdatasync calls inside qcow2_co_flush_to_os
> as bdrv_flush for sure will do the job. These flushes are necessary to
> keep the right order of writes to the different caches. Though this is
> not necessary in the current code base as this ordering is ensured through
> the flush in qcow2_cache_flush_dependency().
> 
> Signed-off-by: Denis V. Lunev <address@hidden>
> CC: Pavel Borzenkov <address@hidden>
> CC: Kevin Wolf <address@hidden>
> CC: Max Reitz <address@hidden>

Thanks, applied to the block branch.

Kevin



reply via email to

[Prev in Thread] Current Thread [Next in Thread]