Mikulas Patocka (mpatocka@xxxxxxxxxx) wrote: > > > On Thu, 22 Mar 2012, Mandeep Singh Baines wrote: > > > Mikulas Patocka (mpatocka@xxxxxxxxxx) 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@xxxxxxxxxxxx> 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. Regards, Mandeep > Mikulas -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel