Am 12.07.2018 um 15:00 hat Peter Lieven geschrieben:
> We currently don't enforce that the sparse segments we detect during convert 
> are
> aligned. This leads to unnecessary and costly read-modify-write cycles either
> internally in Qemu or in the background on the storage device as nearly all
> modern filesystems or hardware have a 4k alignment internally.
> 
> This patch modifies is_allocated_sectors so that its *pnum result will always
> end at an alignment boundary. This way all requests will end at an alignment
> boundary. The start of all requests will also be aligned as long as the 
> results
> of get_block_status do not lead to an unaligned offset.
> 
> The number of RMW cycles when converting an example image [1] to a raw device 
> that
> has 4k sector size is about 4600 4k read requests to perform a total of about 
> 15000
> write requests. With this path the additional 4600 read requests are 
> eliminated while
> the number of total write requests stays constant.
> 
> [1] 
> https://cloud-images.ubuntu.com/releases/16.04/release/ubuntu-16.04-server-cloudimg-amd64-disk1.vmdk
> 
> Signed-off-by: Peter Lieven <p...@kamp.de>

Thanks, applied to the block branch.

Kevin

Reply via email to