[dm-devel] [PATCH] dm: remake of the verity target

Mandeep Singh Baines msb at chromium.org
Fri Mar 23 03:15:32 UTC 2012

Mikulas Patocka (mpatocka at redhat.com) wrote:
> On Thu, 22 Mar 2012, Mandeep Singh Baines wrote:
> > Mikulas Patocka (mpatocka at redhat.com) wrote:
> > > 
> > > This is improved patch that supports both the old format and the new 
> > > format. I checked that it is interoperable with with the old Google 
> > > userspace tool and with the original Google kernel driver.
> > > 
> > 
> > Thanks much for doing this:)
> > 
> > This looks good but would a prepend/append flag be better?
> It does more than changing prepend/append salt. I changed alignment in the 
> new format so that it doesn't have to use a multiply instruction.
> In the old format, if digest size is not a power of two, all digests are 
> placed first and the rest of the block is padded with zeros. In the new 
> format, each digest is padded with zeros to a power of two.
> For example, when using sha1, the old format padding looks like this:
> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbb
> bbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccdddddddd
> dddddddddddddddddddddddddddddddd00000000000000000000000000000000
> 0000000000000000000000000000000000000000000000000000000000000000
> ... and the new format padding looks like this:
> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa000000000000000000000000
> bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb000000000000000000000000
> cccccccccccccccccccccccccccccccccccccccc000000000000000000000000
> dddddddddddddddddddddddddddddddddddddddd000000000000000000000000
> The version "0" (first argument in the target line) actually means the old 
> style padding and the salt is hashed after the data. The version "1" means 
> new style padding and the salt is hashed before the data. If someone comes 
> with another format, we can use version "2" for it, etc.

+cc taysom

Makes sense.

Signed-off-by: Mandeep Singh Baines <msb at chromium.org>

Speaking of V2, one idea a colleague of mine (taysom) just had was to
drop the power of 2 alignment. For SHA-1, this shrinks the tree by 37.5 %.
You have to replace the shifts with divides but the reduction in I/O
more than makes up. For the different levels, you could pre-calculate
the divisor.


> Mikulas

More information about the dm-devel mailing list