Re: [PATCH 1/2] lib: add fast lzo decompressor

From: Andreas Robinson
Date: Fri Apr 03 2009 - 08:53:24 EST


On Fri, 2009-04-03 at 22:48 +1100, Nigel Cunningham wrote:

> Okay. Am I right in thinking (from staring at the code) that the
> compression algo just assumes it has an output buffer big enough? (I
> don't see it checking out_len, only writing to it).

I came to that conclusion too. And it is not just LZO that needs a
bigger buffer. Non-compressed blocks in deflate streams occupy 4 bytes
more than the original, according to RFC 1951 section 3.2.4.

> If that's the case,
> I guess I need to (ideally) persuade the cryptoapi guys to extend the
> api so you can find out how big an output buffer is needed for a
> particular compression algorithm - or learn how they've already done
> that (though it doesn't look like it to me).

I can not see anything to that effect either.

> > If there are multiple threads perhaps they clobber each other's output
> > buffers?
>
> Nope. The output buffers you see here are fed to the next part of the
> pipeline (the block I/O code), which combines them (under a mutex) into
> a stream of |index|size|data|index|size|data... so that we don't have to
> worry at all about which processor compressed (or decompresses data
> later). As I said earlier, it's worked fine with LZF - or no compression
> - for years. It's just LZO that causes me problems.
>
> Thanks!
>
> Nigel
>
I'm glad I was able to help!

Cheers,
Andreas


--
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/