qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] [PATCH] Detect zero writes (for discussion only, not to be


From: Richard W.M. Jones
Subject: [Qemu-devel] [PATCH] Detect zero writes (for discussion only, not to be applied)
Date: Thu, 26 Jul 2012 16:59:48 +0100

[Applies against qemu 1.1.0, not HEAD, because qemu from git seems to
be broken at the moment.  But the patch is easy to rebase.]

This patch adds a -drive detect_zero=on|off flag (defaults to "off").

Setting this on causes the write path to detect all zero byte writes
and, for block device drivers which support this, turn the request
into the more space-efficient bdrv_co_do_write_zeroes call.

The use case is for virt-sparsify.  We want to create an intermediate
qcow2 overlay file which we know will mostly contain zeroes, and we
want qcow2 to handle this without creating a huge empty file.  In my
testing, the size of the intermediate file is reduced considerably
(down to about 1/4 of the original size), making sparsification of
large mostly-empty guests possible for the first time.

The implementation is very simple-minded.  It tests if the entire
request is all zero bytes or not.  A better implementation would
almost certainly be even more space-efficient, but at the cost of
splitting some write requests (if that's a problem).

Testing: I booted and tested an F16 guest with this patch and the
setting "on", without problems.  I also modified libguestfs to add
this flag, then ran the whole libguestfs test suite with no reported
problems.

Rich.





reply via email to

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