lz4: fix wrong compress buffer size for 64-bits
authorBongkyu Kim <bongkyu.kim@lge.com>
Wed, 20 Jan 2016 23:01:08 +0000 (15:01 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 21 Jan 2016 01:09:18 +0000 (17:09 -0800)
The current lz4 compress buffer is 16kb on 32-bits, 32kb on 64-bits
system.  But, lz4 needs only 16kb on both.  On 64-bits, this causes
wasted cpu cycles for additional memset during every compression.

In case of lz4hc, the current buffer size is (256kb + 8) on 32-bits,
(512kb + 16) on 64-bits.  But, lz4hc needs only (256kb + 2 * pointer) on
both.

This patch fixes these wrong compress buffer sizes for 64-bits.

Signed-off-by: Bongkyu Kim <bongkyu.kim@lge.com>
Cc: Chanho Min <chanho.min@lge.com>
Cc: Yann Collet <yann.collet.73@gmail.com>
Cc: Kyungsik Lee <kyungsik.lee@lge.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
include/linux/lz4.h

index 4356686b0a3914a2d47271ca87ff74943782be42..6b784c59f321f413b30fec0ba6048db7f3cf617b 100644 (file)
@@ -9,8 +9,8 @@
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
  */
-#define LZ4_MEM_COMPRESS       (4096 * sizeof(unsigned char *))
-#define LZ4HC_MEM_COMPRESS     (65538 * sizeof(unsigned char *))
+#define LZ4_MEM_COMPRESS       (16384)
+#define LZ4HC_MEM_COMPRESS     (262144 + (2 * sizeof(unsigned char *)))
 
 /*
  * lz4_compressbound()