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

From: Mandeep Singh Baines
Date: Thu Mar 22 2012 - 23:16:19 EST


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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/