On 09/02/2013 01:25 AM, Max Reitz wrote: > If a qcow2 image file becomes corrupted, any write may inadvertently > overwrite important metadata structures such as the L1 table. This > series adds functionality for detecting, preventing and (to some extent) > repairing such collisions. > > v5: > - fixed patch 6 (forgot to update the event_names array for the new > event BLKDBG_REFTABLE_UPDATE); no other changes > > v4: > - fixed handling of preallocated zero clusters in patch 4 > - moved OFLAG_COPIED checks into a separate function (this affects > patches 4 and 5); functionality remains unchanged > - patches 1, 2, 3, 6, 7 and 8 remain unmodified (except for line > numbers in block/qcow2-refcount.c)
Just now looking at this series, and I have several questions. It looks like Kevin applied v4 rather than v5; have we fixed that up? Next, what sort of overhead do these new checks add to the write case? Is it something that would be a noticeable slowdown? I'd love to see some benchmark numbers (hopefully, the default set of checks are in the noise compared to the overhead of actual I/O). Also, is there a way to tune the set of checks used at runtime, or are we stuck with the compiled-in default? That is, can a user opt in to more expensive tests for robustness, or opt out of default tests for speed, via a runtime command, or is it something where they have to recompile to choose a different QCOW2_OL_DEFAULT value? -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature