[PATCH] UBIFS: add crypto lookup field to tree node cache

Joel Reardon joel at clambassador.com
Mon May 14 13:20:49 EDT 2012


The long long is divided as follows:
32 bits for the (KSA-relative) LEB number, 32 bits for the offset in the
leb where the key is found. So its the same as the lnum/offs for the
current one. Theres substancial compression though, that is available,
since theres likely not more than 2^^32 LEBS for the KSA and the number of
bits needed for key offset is LEB_SHIFT - 4.

Is 32 bits sufficient to address all keys:
one key per datanode means 4096 * 2^32 = 2^44, so only 16 TB available
for 32 bit key addresses.

Though there is similar waste for lnum/offs as well. Perhaps zbranches can
be stored as a u8[] and demarshalled with bit-op macros when needed for
computations.

Joel Reardon




On Mon, 14 May 2012, Artem Bityutskiy wrote:

> On Fri, 2012-05-11 at 13:24 +0200, Joel Reardon wrote:
> >  struct ubifs_zbranch {
> >  	union ubifs_key key;
> > @@ -751,6 +752,7 @@ struct ubifs_zbranch {
> >  	int lnum;
> >  	int offs;
> >  	int len;
> > +	long long crypto_lookup;
> >  };
>
> Why is it "long long" which is 64 bit? What will it contain? Could we
> make it unsigned int - we'd waste less RAM then - remember that we
> allocate a lot of these structures.
>
> --
> Best Regards,
> Artem Bityutskiy
>



More information about the linux-mtd mailing list