Il 04/09/2013 14:35, Stefan Hajnoczi ha scritto: > Changing from 512 KB to 64 KB can affect performance. 8 times as many > iops may be issued to copy data. > > Also, the image's cluster size should really be taken into account. > Otherwise additional inefficiency will be suffered when we populate a > 128 KB cluster with a COMMIT_BUFFER_SECTORS (64 KB) write only to > overwrite the remaining part in the next loop iteration. > > This can be solved by setting dirty bitmap granularity to cluster size > or 64 KB minimum *and* finding continuous runs of dirty bits so larger > I/Os can be performed by the main loop (up to 512 KB in one request).
At this point, you're basically reinventing the algorithms in block/mirror.c (even more than this patch is already doing :)). I wonder if commit-to-active should be internally a separate kind of job, implemented in block/mirror.c instead of block/commit.c. Paolo