From: Nigel Cunningham <nigel@suspend2.net>
To: Herbert Xu <herbert@gondor.apana.org.au>
Cc: rjw@sisk.pl, linux-kernel@vger.kernel.org
Subject: Re: [Suspend2][ 0/2] Cryptoapi deflate fix.
Date: Tue, 27 Jun 2006 17:02:46 +1000 [thread overview]
Message-ID: <200606271702.49408.nigel@suspend2.net> (raw)
In-Reply-To: <E1Fv6cg-000617-00@gondolin.me.apana.org.au>
[-- Attachment #1: Type: text/plain, Size: 3274 bytes --]
Hi.
On Tuesday 27 June 2006 16:00, Herbert Xu wrote:
> Nigel Cunningham <nigel@suspend2.net> wrote:
> > Sorry for the bad choice of heading. I have posted this before and
> > emailed it direct to Herbert, but he (rightly) doesn't see the need while
> > suspend2 isn't merged.
>
> Hmm, I don't recall ever telling you that.
Ok. Sorry for my wonky memory then :)
> I searched through my mail archive here is what I said to you last year
> on these two patches. As far as I can see I don't have a reply from you
> on either subject. So if you could reply to my questions below then I
> can consider your patches again.
>
> 1. Deflate fix:
> > > Hi Nigel, I need a bit more information about this patch.
> > > Do you have a specific input stream that requires a fix like
> > > this?
> >
> > Yes, Suspend2 if the user selects deflate as their compressor. The
> > output data will be PAGE_SIZE chunks, but deflate sometimes thinks it
> > has an extra byte to give us back.
>
> Are you saying that you're feeding it PAGE_SIZE chunks and it's
> giving you back something bigger than a page? That is expected
> since the nature of compression in general is that not everything
> is compressible. Data streams which are not compressible will
> end up bigger than what you start with.
>
> What would be a bug is if you feed it something that's
> deflateBound^-1(PAGE_SIZE) bytes long and it spits back
> something that's longer than a page.
Yes, I'm always feeding it PAGE_SIZE chunks and compressing each page
separately. It's a long time since I looked at or thought about this, so I'll
spend some more time getting it fresh in my head if you like.
> > I agree that it's ugly and don't recall using it when I had gzip support
> > in an earlier version of Suspend2. Are you thinking there might be a
> > better way? If so, I can dig out the old (non crypto api) code.
>
> Well if you could give me a snippet of code that actually uses this
> stuff to compress pages then I might have a better idea of what it's
> trying to do.
>
> 2. LZF:
> > +static int lzf_compress_init(void *context)
> > +{
> > + struct lzf_ctx *ctx = (struct lzf_ctx *)context;
> > +
> > + /* Get LZF ready to go */
> > + ctx->hbuf = vmalloc_32((1 << hlog) * sizeof(char *));
>
> Any reason why vmalloc can't be used?
I just left Marc's original code as it was, so I'm not completely sure, but I
guess it's because we want lowmem.
> > + /* Allocate local buffer */
> > + ctx->local_buffer = (char *)get_zeroed_page(GFP_ATOMIC);
> >
> > + /* Allocate page buffer */
> > + ctx->page_buffer = (char *)get_zeroed_page(GFP_ATOMIC);
>
> Where are these two buffers used anyway?
Page_buffer is the destination buffer passed to the compressor. Local buffer
is used to buffer the output for writing (and vv).
> > + if (!ctx->page_buffer) {
> > + free_page((unsigned long)ctx->local_buffer);
> > + lzf_compress_exit(ctx);
>
> This is a double-free of local_buffer.
Is that from our previous correspondence? I can't find anything like it now.
Regards,
Nigel
> Cheers,
--
See http://www.suspend2.net for Howtos, FAQs, mailing
lists, wiki and bugzilla info.
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
next prev parent reply other threads:[~2006-06-27 7:02 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-06-26 16:51 [Suspend2][ 0/2] Cryptoapi deflate fix Nigel Cunningham
2006-06-26 16:51 ` [Suspend2][ 1/2] [Suspend2] Add cryptoapi LZF support Nigel Cunningham
2006-06-26 16:51 ` [Suspend2][ 2/2] [Suspend2] Make cryptoapi deflate module handle full pages Nigel Cunningham
2006-06-26 20:09 ` [Suspend2][ 0/2] Cryptoapi deflate fix Rafael J. Wysocki
2006-06-26 22:52 ` Nigel Cunningham
2006-06-27 6:00 ` Herbert Xu
2006-06-27 7:02 ` Nigel Cunningham [this message]
2006-06-27 9:35 ` Herbert Xu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200606271702.49408.nigel@suspend2.net \
--to=nigel@suspend2.net \
--cc=herbert@gondor.apana.org.au \
--cc=linux-kernel@vger.kernel.org \
--cc=rjw@sisk.pl \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox