From: "Markus F.X.J. Oberhumer" <markus@oberhumer.com> To: Johannes Stezenbach <js@sig21.net> Cc: linux-kernel@vger.kernel.org, Andi Kleen <andi@firstfloor.org>, chris.mason@fusionio.com, linux-btrfs@vger.kernel.org, Nitin Gupta <ngupta@vflare.org>, Richard Purdie <rpurdie@openedhand.com>, richard -rw- weinberger <richard.weinberger@gmail.com>, linux-arm-kernel@lists.infradead.org Subject: Re: [GIT PULL] Update LZO compression Date: Wed, 15 Aug 2012 14:02:43 +0200 [thread overview] Message-ID: <502B8FE3.7080501@oberhumer.com> (raw) In-Reply-To: <20120814123937.GA14756@sig21.net> Hi Johannes, On 2012-08-14 14:39, Johannes Stezenbach wrote: > On Tue, Aug 14, 2012 at 01:44:02AM +0200, Markus F.X.J. Oberhumer wrote: >> On 2012-07-16 20:30, Markus F.X.J. Oberhumer wrote: >>> >>> As stated in the README this version is significantly faster (typically more >>> than 2 times faster!) than the current version, has been thoroughly tested on >>> x86_64/i386/powerpc platforms and is intended to get included into the >>> official Linux 3.6 or 3.7 release. >>> >>> I encourage all compression users to test and benchmark this new version, >>> and I also would ask some official LZO maintainer to convert the updated >>> source files into a GIT commit and possibly push it to Linus or linux-next. > > Sorry for not reporting earlier, but I didn't have time to do real > benchmarks, just a quick test on ARM926EJ-S using barebox, > and found in the new version decompression is slower: > http://lists.infradead.org/pipermail/barebox/2012-July/008268.html I can only guess, but maybe your ARM cpu does not have an efficient implementation of {get,put}_unaligned(). Could you please try the following patch and test if you can see any significant speed difference? Thanks, Markus diff --git a/lib/lzo/lzodefs.h b/lib/lzo/lzodefs.h index ddc8db5..efc5714 100644 --- a/lib/lzo/lzodefs.h +++ b/lib/lzo/lzodefs.h @@ -12,8 +12,15 @@ */ +#if defined(__arm__) +#define COPY4(dst, src) \ + (dst)[0] = (src)[0]; (dst)[1] = (src)[1]; \ + (dst)[2] = (src)[2]; (dst)[3] = (src)[3] +#endif +#ifndef COPY4 #define COPY4(dst, src) \ put_unaligned(get_unaligned((const u32 *)(src)), (u32 *)(dst)) +#endif #if defined(__x86_64__) #define COPY8(dst, src) \ put_unaligned(get_unaligned((const u64 *)(src)), (u64 *)(dst)) > > BTW, do you have userspace code matching the old and new > lzo versions? It would be easier to benchmark. > > Unfortunately I cannot claim high confidence in my benchmark results > due to missing time to do it properly, it would be useful if > someone else could do some benchmarks on ARM before merging this. > > > Johannes -- Markus Oberhumer, <markus@oberhumer.com>, http://www.oberhumer.com/
WARNING: multiple messages have this Message-ID (diff)
From: markus@oberhumer.com (Markus F.X.J. Oberhumer) To: linux-arm-kernel@lists.infradead.org Subject: [GIT PULL] Update LZO compression Date: Wed, 15 Aug 2012 14:02:43 +0200 [thread overview] Message-ID: <502B8FE3.7080501@oberhumer.com> (raw) In-Reply-To: <20120814123937.GA14756@sig21.net> Hi Johannes, On 2012-08-14 14:39, Johannes Stezenbach wrote: > On Tue, Aug 14, 2012 at 01:44:02AM +0200, Markus F.X.J. Oberhumer wrote: >> On 2012-07-16 20:30, Markus F.X.J. Oberhumer wrote: >>> >>> As stated in the README this version is significantly faster (typically more >>> than 2 times faster!) than the current version, has been thoroughly tested on >>> x86_64/i386/powerpc platforms and is intended to get included into the >>> official Linux 3.6 or 3.7 release. >>> >>> I encourage all compression users to test and benchmark this new version, >>> and I also would ask some official LZO maintainer to convert the updated >>> source files into a GIT commit and possibly push it to Linus or linux-next. > > Sorry for not reporting earlier, but I didn't have time to do real > benchmarks, just a quick test on ARM926EJ-S using barebox, > and found in the new version decompression is slower: > http://lists.infradead.org/pipermail/barebox/2012-July/008268.html I can only guess, but maybe your ARM cpu does not have an efficient implementation of {get,put}_unaligned(). Could you please try the following patch and test if you can see any significant speed difference? Thanks, Markus diff --git a/lib/lzo/lzodefs.h b/lib/lzo/lzodefs.h index ddc8db5..efc5714 100644 --- a/lib/lzo/lzodefs.h +++ b/lib/lzo/lzodefs.h @@ -12,8 +12,15 @@ */ +#if defined(__arm__) +#define COPY4(dst, src) \ + (dst)[0] = (src)[0]; (dst)[1] = (src)[1]; \ + (dst)[2] = (src)[2]; (dst)[3] = (src)[3] +#endif +#ifndef COPY4 #define COPY4(dst, src) \ put_unaligned(get_unaligned((const u32 *)(src)), (u32 *)(dst)) +#endif #if defined(__x86_64__) #define COPY8(dst, src) \ put_unaligned(get_unaligned((const u64 *)(src)), (u64 *)(dst)) > > BTW, do you have userspace code matching the old and new > lzo versions? It would be easier to benchmark. > > Unfortunately I cannot claim high confidence in my benchmark results > due to missing time to do it properly, it would be useful if > someone else could do some benchmarks on ARM before merging this. > > > Johannes -- Markus Oberhumer, <markus@oberhumer.com>, http://www.oberhumer.com/
next prev parent reply other threads:[~2012-08-15 12:02 UTC|newest] Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top 2012-08-13 23:44 [GIT PULL] Update LZO compression Markus F.X.J. Oberhumer 2012-08-14 3:15 ` Andi Kleen 2012-08-14 10:10 ` Markus F.X.J. Oberhumer 2012-08-14 12:39 ` Johannes Stezenbach 2012-08-14 12:39 ` Johannes Stezenbach 2012-08-15 12:02 ` Markus F.X.J. Oberhumer [this message] 2012-08-15 12:02 ` Markus F.X.J. Oberhumer 2012-08-15 14:45 ` Johannes Stezenbach 2012-08-15 14:45 ` Johannes Stezenbach 2012-08-16 6:27 ` Markus F.X.J. Oberhumer 2012-08-16 6:27 ` Markus F.X.J. Oberhumer 2012-08-16 15:06 ` Johannes Stezenbach 2012-08-16 15:06 ` Johannes Stezenbach 2012-08-16 17:25 ` Roman Mamedov 2012-08-16 17:25 ` Roman Mamedov 2012-08-16 17:52 ` Andi Kleen 2012-08-16 17:52 ` Andi Kleen 2012-08-16 18:18 ` Geert Uytterhoeven 2012-08-16 18:18 ` Geert Uytterhoeven 2012-08-16 18:55 ` james northrup 2012-08-16 22:17 ` Andi Kleen 2012-08-16 22:17 ` Andi Kleen 2012-08-17 1:23 ` Mitch Harder 2012-08-17 1:23 ` Mitch Harder 2012-09-07 21:31 ` Andi Kleen 2012-09-07 21:31 ` Andi Kleen 2012-08-16 18:57 ` james northrup 2012-08-16 15:21 ` Jeff Garzik 2012-08-16 15:21 ` Jeff Garzik 2012-08-16 16:20 ` Andi Kleen 2012-08-16 16:20 ` Andi Kleen 2012-08-16 16:48 ` Jeff Garzik 2012-08-16 16:48 ` Jeff Garzik 2012-08-16 17:22 ` Johannes Stezenbach 2012-08-16 17:22 ` Johannes Stezenbach
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=502B8FE3.7080501@oberhumer.com \ --to=markus@oberhumer.com \ --cc=andi@firstfloor.org \ --cc=chris.mason@fusionio.com \ --cc=js@sig21.net \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-btrfs@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=ngupta@vflare.org \ --cc=richard.weinberger@gmail.com \ --cc=rpurdie@openedhand.com \ /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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.