[dm-devel] [PATCH 0/4] dm verity: add support for error correction

Mikulas Patocka mpatocka at redhat.com
Sat Nov 7 15:29:05 UTC 2015



On Fri, 6 Nov 2015, Sami Tolvanen wrote:

> On Fri, Nov 06, 2015 at 10:05:24PM +0100, Zdenek Kabelac wrote:
> > So how do you want to correctly 'restore'  missing full sectors
> > with just 0.8% data overhead ??
> 
> We use interleaving. Each byte in a 4k block is part of a different
> Reed-Solomon block, which means an entire lost 4k data block looks like a
> single error. When we also spread the bytes that form a single Reed-Solomon
> block across the partition, we end up being able to correct several
> megabytes of consecutive corrupted blocks with very small space overhead.
> 
> Sami

But the patch doesn't do any correction in case of I/O error - it just 
returns the bio with I/O error.

BTW. the function verity_fec_alloc_buffers does vzalloc and GFP_KERNEL 
kmalloc inside I/O handling code - that shouldn't be done - you should 
preallocate the data structures when the device is loaded.

Mikulas




More information about the dm-devel mailing list