zram: add lz4 algorithm backend
Introduce LZ4 compression backend and make it available for selection.
LZ4 support is optional and requires user to set ZRAM_LZ4_COMPRESS config
option. The default compression backend is LZO.
TEST
(x86_64, core i5, 2 cores + 2 hyperthreading, zram disk size 1G,
ext4 file system, 3 compression streams)
iozone -t 3 -R -r 16K -s 60M -I +Z
Test LZO LZ4
----------------------------------------------
Initial write
1642744.62
1317005.09
Rewrite
2498980.88
1800645.16
Read
3957026.38
5877043.75
Re-read
3950997.38
5861847.00
Reverse Read
2937114.56
5047384.00
Stride read
2948163.19
4929587.38
Random read
3292692.69
4880793.62
Mixed workload
1545602.62
3502940.38
Random write
2448039.75
1758786.25
Pwrite
1670051.03
1338329.69
Pread
2530682.00
5097177.62
Fwrite
3232085.62
3275942.56
Fread
6306880.25
6645271.12
So on my system LZ4 is slower in write-only tests, while it performs
better in read-only and mixed (reads + writes) tests.
Official LZ4 benchmarks available here http://code.google.com/p/lz4/
(linux kernel uses revision r90).
Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
Acked-by: Minchan Kim <minchan@kernel.org>
Cc: Jerome Marchand <jmarchan@redhat.com>
Cc: Nitin Gupta <ngupta@vflare.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>