grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [RFC] LZO support


From: Szymon Janc
Subject: Re: [RFC] LZO support
Date: Tue, 4 Oct 2011 22:11:40 +0200
User-agent: KMail/1.13.7 (Linux/3.0.0-1-686-pae; KDE/4.6.5; i686; ; )

On Wednesday 28 September 2011 23:39:24 Vladimir 'φ-coder/phcoder' Serbinenko 
wrote:
> On 14.09.2011 21:20, Szymon Janc wrote:
> > Hello,
> > 
> > I've implemented support for LZO in grub, this includes:
> > - import of minilzo library (from [1])
> > - support for LZO (de)compression in btrfs (compress=lzo mount option)
> > - lzopio - for reading lzop compressed files
> 
> +  common = lib/minilzo/minilzo.c;
> @@ -1650,6 +1653,14 @@
> +  common = lib/minilzo/minilzo.c;
> Please don't include same file twice in different modules it creates a
> symbol conflict. It's ok to have btrfs depend on lzopio if necessary, at
> least for now.

Done.

> +#include "minilzo.h"
> I'd prefer <minilzo.h> and an explicit -I on cppflags if necessary.

Done.

> -      grub_disk_addr_t *outaddr, grub_size_t *outsize,
> +      grub_disk_addr_t * outaddr, grub_size_t * outsize,
> this is a stylistic regression. (several such occurences)
> -      if (desc->data[desc->depth - 1].iter
> -         < desc->data[desc->depth - 1].maxiter)
> +      if (desc->data[desc->depth - 1].iter <
> +         desc->data[desc->depth - 1].maxiter)
> Likewise.

Oops. Fixed.

> +      grub_uint8_t context[lzopio->ccheck_fun->contextsize];
> This isn't necessarily well-aligned. Use grub_uint64_t
> context[(lzopio->ccheck_fun->contextsize + 7) / 8];
> (several occurences)

Done.

> +  file->size = GRUB_FILE_SIZE_UNKNOWN;
> Several components have trouble with such files. Is there any way to
> retrieve the size of lzio compressed file?

It is possible and it is already implemented, please see 
calculate_uncompressed_size().  Actually, uncompressed size is always 
calculated. There is TODO to not do it on not-easily-seekable files as done in 
other ios. And GRUB_FILE_SIZE_UNKNOWN is set for 'future proof' only.

> 
> > - lzopio works ok with grub-fstest (crc, testload), also able to load
> > modules
> > 
> >   compressed with lzop, but compressing all modules and doing
> >   grub-install --modules=lzopio fails to boot, still need to investigate
> >   that
> 
> That because dependencies on hashes are soft so it's not correctly
> tracked by grub-install and so you end up in an infinite recursion.


Branch on savannah updated.

-- 
Szymon K. Janc
address@hidden // GG: 1383435




reply via email to

[Prev in Thread] Current Thread [Next in Thread]