[Top][All Lists]
[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
- Re: [RFC] LZO support,
Szymon Janc <=