Gao Xiang
2209fda323
lib/lz4: update LZ4 decompressor module
...
Update the LZ4 compression module based on LZ4 v1.8.3 in order for the
erofs file system to use the newest LZ4_decompress_safe_partial() which
can now decode exactly the nb of bytes requested [1] to take place of the
open hacked code in the erofs file system itself.
Currently, apart from the erofs file system, no other users use
LZ4_decompress_safe_partial, so no worry about the interface.
In addition, LZ4 v1.8.x boosts up decompression speed compared to the
current code which is based on LZ4 v1.7.3, mainly due to shortcut
optimization for the specific common LZ4-sequences [2].
lzbench testdata (tested in kirin710, 8 cores, 4 big cores
at 2189Mhz, 2GB DDR RAM at 1622Mhz, with enwik8 testdata [3]):
Compressor name Compress. Decompress. Compr. size Ratio Filename
memcpy 5004 MB/s 4924 MB/s 100000000 100.00 enwik8
lz4hc 1.7.3 -9 12 MB/s 653 MB/s 42203253 42.20 enwik8
lz4hc 1.8.0 -9 12 MB/s 908 MB/s 42203096 42.20 enwik8
lz4hc 1.8.3 -9 11 MB/s 965 MB/s 42203094 42.20 enwik8
[1] https://github.com/lz4/lz4/issues/566
08d347b5b2
[2] v1.8.1 perf: slightly faster compression and decompression speed
a31b7058cb
v1.8.2 perf: slightly faster HC compression and decompression speed
45f8603aae
1a191b3f8d
[3] http://mattmahoney.net/dc/textdata.html
http://mattmahoney.net/dc/enwik8.zip
Link: http://lkml.kernel.org/r/1537181207-21932-1-git-send-email-gaoxiang25@huawei.com
Signed-off-by: Gao Xiang <gaoxiang25@huawei.com>
Tested-by: Guo Xuenan <guoxuenan@huawei.com>
Cc: Colin Ian King <colin.king@canonical.com>
Cc: Yann Collet <yann.collet.73@gmail.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Fang Wei <fangwei1@huawei.com>
Cc: Chao Yu <yuchao0@huawei.com>
Cc: Miao Xie <miaoxie@huawei.com>
Cc: Sven Schmidt <4sschmid@informatik.uni-hamburg.de>
Cc: Kyungsik Lee <kyungsik.lee@lge.com>
Cc: <weidu.du@huawei.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2018-10-31 08:54:14 -07:00
..
842
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
fonts
lib/fonts: convert comments to utf-8
2018-08-23 18:48:43 -07:00
lz4
lib/lz4: update LZ4 decompressor module
2018-10-31 08:54:14 -07:00
lzo
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
mpi
lib/mpi: remove redundant variable esign
2018-08-07 17:51:39 +08:00
raid6
RAID/s390: Remove VLA usage
2018-07-04 08:37:50 +02:00
reed_solomon
reed_solomon: Fix kernel-doc
2018-07-10 15:00:52 -06:00
xz
lib/xz: Put CRC32_POLY_LE in xz_private.h
2018-10-02 08:44:59 +10:00
zlib_deflate
zlib_inflate
lib/zlib_inflate/inflate.c: remove fall through warnings
2018-10-31 08:54:13 -07:00
zstd
lib: zstd: clean up Makefile for simpler composite object handling
2018-03-26 02:01:27 +09:00
.gitignore
lib: add crc64 calculation routines
2018-08-22 10:52:48 -07:00
argv_split.c
treewide: kmalloc() -> kmalloc_array()
2018-06-12 16:19:22 -07:00
ashldi3.c
move libgcc.h to include/linux
2017-12-01 13:09:40 -08:00
ashrdi3.c
move libgcc.h to include/linux
2017-12-01 13:09:40 -08:00
asn1_decoder.c
ASN.1: check for error from ASN1_OP_END__ACT actions
2017-12-08 15:13:27 +00:00
assoc_array.c
lib/assoc_array: Remove smp_read_barrier_depends()
2017-12-04 10:52:56 -08:00
atomic64.c
atomics/generic: Define atomic64_fetch_add_unless()
2018-06-21 14:25:21 +02:00
atomic64_test.c
audit.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
bcd.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
bch.c
lib/bch: fix possible stack overrun
2018-10-12 09:17:46 +02:00
bitmap.c
lib/bitmap.c: simplify bitmap_print_to_pagebuf()
2018-10-31 08:54:12 -07:00
bitrev.c
bsearch.c
btree.c
btree: avoid variable-length allocations
2018-03-14 16:55:29 -07:00
bucket_locks.c
ila: make lockdep happy again
2018-08-16 12:14:42 -07:00
bug.c
lib/bug.c: exclude non-BUG/WARN exceptions from report_bug()
2018-03-09 16:40:01 -08:00
build_OID_registry
bust_spinlocks.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
chacha20.c
crypto: chacha20 - Fix chacha20_block() keystream alignment (again)
2018-09-21 13:24:50 +08:00
check_signature.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
checksum.c
clz_ctz.c
clz_tab.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
cmdline.c
cmpdi2.c
move libgcc.h to include/linux
2017-12-01 13:09:40 -08:00
compat_audit.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
cordic.c
cpu_rmap.c
cpumask.c
lib: optimize cpumask_next_and()
2018-02-06 18:32:44 -08:00
crc-ccitt.c
lib/crc-ccitt: Add CCITT-FALSE CRC16 variant
2018-01-08 10:08:33 +00:00
crc-itu-t.c
crc-t10dif.c
crc-t10dif: crc_t10dif_mutex can be static
2018-09-14 14:08:52 +08:00
crc4.c
crc7.c
crc8.c
crc16.c
crc32.c
lib/crc32: make core crc32() routines weak so they can be overridden
2018-09-10 16:09:27 +01:00
crc32defs.h
lib/crc: Move polynomial definition to separate header
2018-07-27 19:04:33 +08:00
crc32test.c
crc64.c
lib: add crc64 calculation routines
2018-08-22 10:52:48 -07:00
ctype.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
debug_info.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
debug_locks.c
locking/lockdep: Make global debug_locks* variables read-mostly
2018-10-19 07:53:18 +02:00
debugobjects.c
debugobjects: Remove redundant NULL pointer check
2018-08-02 13:53:04 +02:00
dec_and_lock.c
atomic: Add irqsave variant of atomic_dec_and_lock()
2018-06-12 23:33:24 +02:00
decompress.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
decompress_bunzip2.c
lib: Use existing define with polynomial
2018-07-27 19:16:38 +08:00
decompress_inflate.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
decompress_unlz4.c
decompress_unlzma.c
decompress_unlzo.c
decompress_unxz.c
devres.c
devres: Add devm_of_iomap()
2018-07-23 15:22:39 +10:00
digsig.c
div64.c
A relatively calm cycle for the docs tree again.
2017-11-13 08:25:06 -08:00
dump_stack.c
printk: move dump stack related code to lib/dump_stack.c
2018-03-15 13:25:36 +01:00
dynamic_debug.c
dynamic-debug-howto: fix optional/omitted ending line number to be LARGE instead of 0
2017-11-17 16:10:01 -08:00
dynamic_queue_limits.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
2017-11-15 11:56:19 -08:00
earlycpio.c
error-inject.c
error-injection: Add injectable error types
2018-01-12 17:33:38 -08:00
errseq.c
errseq: Always report a writeback error once
2018-04-27 08:51:26 -04:00
extable.c
fault-inject.c
fdt.c
fdt_empty_tree.c
fdt_ro.c
fdt_rw.c
fdt_strerror.c
fdt_sw.c
fdt_wip.c
find_bit.c
lib: optimize cpumask_next_and()
2018-02-06 18:32:44 -08:00
find_bit_benchmark.c
lib/find_bit_benchmark.c: avoid soft lockup in test_find_first_bit()
2018-05-11 17:28:45 -07:00
flex_array.c
flex_proportions.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
gcd.c
gen_crc32table.c
lib/crc: Use consistent naming for CRC-32 polynomials
2018-07-27 19:04:33 +08:00
gen_crc64table.c
lib: add crc64 calculation routines
2018-08-22 10:52:48 -07:00
genalloc.c
lib/genalloc.c: make the avail variable an atomic_long_t
2017-11-17 16:10:02 -08:00
glob.c
globtest.c
hexdump.c
hweight.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
idr.c
radix tree: Remove radix_tree_update_node_t
2018-10-21 10:46:44 -04:00
inflate.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
int_sqrt.c
lib: Add strongly typed 64bit int_sqrt
2018-02-04 10:17:21 +00:00
interval_tree.c
interval_tree_test.c
treewide: kmalloc() -> kmalloc_array()
2018-06-12 16:19:22 -07:00
iomap.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
iomap_copy.c
iommu-helper.c
iommu-helper: mark iommu_is_span_boundary as inline
2018-05-09 06:55:44 +02:00
ioremap.c
ioremap: Update pgtable free interfaces with addr
2018-07-04 21:37:08 +02:00
iov_iter.c
lib/iov_iter: Fix pipe handling in _copy_to_iter_mcsafe()
2018-07-16 00:05:05 +02:00
irq_poll.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
irq_regs.c
is_single_threaded.c
jedec_ddr_data.c
kasprintf.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
Kconfig
Merge branch 'xarray' of git://git.infradead.org/users/willy/linux-dax
2018-10-28 11:35:40 -07:00
Kconfig.debug
Merge branch 'xarray' of git://git.infradead.org/users/willy/linux-dax
2018-10-28 11:35:40 -07:00
Kconfig.kasan
s390/kasan: add option for 4-level paging support
2018-10-09 11:21:29 +02:00
Kconfig.kgdb
Kconfig.ubsan
lib/ubsan: remove null-pointer checks
2018-08-10 20:19:58 -07:00
kfifo.c
treewide: kmalloc() -> kmalloc_array()
2018-06-12 16:19:22 -07:00
klist.c
scsi: klist: Make it safe to use klists in atomic context
2018-07-02 16:20:23 -04:00
kobject.c
Driver core patches for 4.19-rc1
2018-08-18 11:44:53 -07:00
kobject_uevent.c
netns: restrict uevents
2018-05-01 10:22:41 -04:00
kstrtox.c
lib/kstrtox.c: delete unnecessary casts
2018-10-31 08:54:13 -07:00
kstrtox.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
lcm.c
libcrc32c.c
libcrc32c: Add crc32c_impl function
2018-03-26 15:09:38 +02:00
list_debug.c
lib/list_debug.c: print unmangled addresses
2018-04-11 10:28:35 -07:00
list_sort.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
llist.c
locking/atomics: COCCINELLE/treewide: Convert trivial ACCESS_ONCE() patterns to READ_ONCE()/WRITE_ONCE()
2017-10-25 11:01:08 +02:00
locking-selftest-hardirq.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
locking-selftest-mutex.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
locking-selftest-rlock-hardirq.h
locking-selftest-rlock-softirq.h
locking-selftest-rlock.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
locking-selftest-rsem.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
locking-selftest-rtmutex.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
locking-selftest-softirq.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
locking-selftest-spin-hardirq.h
locking-selftest-spin-softirq.h
locking-selftest-spin.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
locking-selftest-wlock-hardirq.h
locking-selftest-wlock-softirq.h
locking-selftest-wlock.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
locking-selftest-wsem.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
locking-selftest.c
locking: Implement an algorithm choice for Wound-Wait mutexes
2018-07-03 09:44:36 +02:00
lockref.c
lockref: Add lockref_put_not_zero
2018-04-12 09:41:19 -07:00
logic_pio.c
lib: Add generic PIO mapping method
2018-03-21 17:18:34 -05:00
lru_cache.c
treewide: kzalloc() -> kcalloc()
2018-06-12 16:19:22 -07:00
lshrdi3.c
move libgcc.h to include/linux
2017-12-01 13:09:40 -08:00
Makefile
Globally warn on VLA use
2018-10-28 13:26:45 -07:00
memcat_p.c
lib: Fix ia64 bootloader linkage
2018-10-16 13:45:44 +02:00
memory-notifier-error-inject.c
memweight.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
muldi3.c
move libgcc.h to include/linux
2017-12-01 13:09:40 -08:00
net_utils.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
netdev-notifier-error-inject.c
nlattr.c
netlink: Add strict version of nlmsg_parse and nla_parse
2018-10-08 10:39:04 -07:00
nmi_backtrace.c
printk/nmi: Prevent deadlock when accessing the main log buffer in NMI
2018-07-09 14:10:40 +02:00
nodemask.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
notifier-error-inject.c
notifier-error-inject.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
of-reconfig-notifier-error-inject.c
oid_registry.c
509: fix printing uninitialized stack memory when OID is empty
2017-12-08 15:13:28 +00:00
once.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2017-11-04 09:26:51 +09:00
parman.c
parser.c
lib/parser.c: switch match_number() over to use match_strdup()
2018-10-31 08:54:12 -07:00
pci_iomap.c
PCI: Add SPDX GPL-2.0 when no license was specified
2018-01-26 11:45:16 -06:00
percpu-refcount.c
percpu-refcount: Introduce percpu_ref_resurrect()
2018-09-26 15:11:29 -06:00
percpu_counter.c
notifier: Remove notifier header file wherever not used
2018-08-30 12:56:40 +02:00
percpu_test.c
plist.c
pm-notifier-error-inject.c
prime_numbers.c
radix-tree.c
radix tree: Remove multiorder support
2018-10-21 10:46:48 -04:00
random32.c
treewide: Switch DEFINE_TIMER callbacks to struct timer_list *
2017-11-21 15:57:05 -08:00
ratelimit.c
rational.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
rbtree.c
lib/rbtree,drm/mm: add rbtree_replace_node_cached()
2017-12-14 16:00:48 -08:00
rbtree_test.c
treewide: kmalloc() -> kmalloc_array()
2018-06-12 16:19:22 -07:00
reciprocal_div.c
lib: reciprocal_div: implement the improved algorithm on the paper mentioned
2018-07-07 01:45:31 +02:00
refcount.c
Linux 4.18-rc5
2018-07-17 09:27:43 +02:00
rhashtable.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2018-08-27 11:59:39 -07:00
sbitmap.c
treewide: kzalloc_node() -> kcalloc_node()
2018-06-12 16:19:22 -07:00
scatterlist.c
for-linus-20180629
2018-06-30 10:47:46 -07:00
seq_buf.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
sg_pool.c
lib/sg_pool.c: remove unnecessary null check when freeing object
2018-10-31 08:54:13 -07:00
sg_split.c
sha1.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
sha256.c
kernel/kexec_file.c: move purgatories sha256 to common code
2018-04-13 17:10:28 -07:00
show_mem.c
siphash.c
smp_processor_id.c
lib: do not use print_symbol()
2018-01-05 15:24:00 +01:00
sort.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
stackdepot.c
lib/stackdepot.c: use a non-instrumented version of memcmp()
2018-02-06 18:32:44 -08:00
stmp_device.c
string.c
lib: Fix ia64 bootloader linkage
2018-10-16 13:45:44 +02:00
string_helpers.c
strncpy_from_user.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
strnlen_user.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
syscall.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
test-kstrtox.c
test-string_helpers.c
test_bitfield.c
bitfield: add tests
2018-06-27 18:58:49 +03:00
test_bitmap.c
lib/test_bitmap.c: fix bitmap optimisation tests to report errors correctly
2018-05-18 17:17:12 -07:00
test_bpf.c
bpf: test_bpf: add init_net to dev for flow_dissector
2018-09-27 21:09:45 +02:00
test_debug_virtual.c
lib/test_debug_virtual.c: make struct pointer foo static
2018-08-22 10:52:48 -07:00
test_firmware.c
treewide: Use array_size() in vzalloc()
2018-06-12 16:19:22 -07:00
test_hash.c
test_hexdump.c
lib/test_hexdump.c: fix failure on big endian cpu
2018-08-22 10:52:48 -07:00
test_ida.c
test_ida: Fix lockdep warning
2018-10-15 16:31:29 -04:00
test_kasan.c
lib/test_kasan.c: add tests for several string/memory API functions
2018-10-26 16:25:18 -07:00
test_kmod.c
treewide: Use array_size() in vzalloc()
2018-06-12 16:19:22 -07:00
test_list_sort.c
lib/test: delete five error messages for failed memory allocations
2017-11-17 16:10:01 -08:00
test_memcat_p.c
lib: Fix ia64 bootloader linkage
2018-10-16 13:45:44 +02:00
test_module.c
test_overflow.c
test_overflow: Add shift overflow tests
2018-08-08 09:47:26 -06:00
test_parman.c
test_printf.c
Revert "lib/test_printf.c: call wait_for_random_bytes() before plain %p tests"
2018-06-25 13:44:20 +02:00
test_rhashtable.c
rhashtable: remove nulls_base and related code.
2018-06-22 13:43:27 +09:00
test_siphash.c
test_sort.c
lib/test_sort.c: add module unload support
2018-02-06 18:32:45 -08:00
test_static_key_base.c
test_static_keys.c
test_string.c
lib: add module support to string tests
2017-11-17 16:10:01 -08:00
test_sysctl.c
test_ubsan.c
lib/test_ubsan.c: make test_ubsan_misaligned_access() static
2018-04-11 10:28:35 -07:00
test_user_copy.c
treewide: simplify Kconfig dependencies for removed archs
2018-03-26 15:55:57 +02:00
test_uuid.c
test_xarray.c
xarray: Add range store functionality
2018-10-21 10:46:46 -04:00
textsearch.c
textsearch: fix kernel-doc warnings and add kernel-api section
2018-04-16 18:53:13 -04:00
timerqueue.c
timerqueue: Document return values of timerqueue_add/del()
2017-12-29 23:13:10 +01:00
ts_bm.c
ts_fsm.c
textsearch: fix typos in library helpers
2017-10-22 03:14:07 +01:00
ts_kmp.c
textsearch: fix typos in library helpers
2017-10-22 03:14:07 +01:00
ubsan.c
lib/ubsan: remove returns-nonnull-attribute checks
2018-02-06 18:32:46 -08:00
ubsan.h
lib/ubsan: remove returns-nonnull-attribute checks
2018-02-06 18:32:46 -08:00
ucmpdi2.c
Add notrace to lib/ucmpdi2.c
2018-04-23 16:39:35 +01:00
ucs2_string.c
lib/ucs2_string.c: add MODULE_LICENSE()
2018-06-07 17:34:39 -07:00
udivmoddi4.c
lib: Add umoddi3 and udivmoddi4 of GCC library routines
2018-10-22 17:02:56 -07:00
umoddi3.c
lib: Add umoddi3 and udivmoddi4 of GCC library routines
2018-10-22 17:02:56 -07:00
usercopy.c
Fix misannotated out-of-line _copy_to_user()
2017-12-11 09:35:11 -05:00
uuid.c
Documentation: add UUID/GUID to kernel-api
2017-12-11 15:03:08 -07:00
vsprintf.c
Devicetree updates for 4.20:
2018-10-26 12:09:58 -07:00
win_minmax.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
xarray.c
xarray: Add range store functionality
2018-10-21 10:46:46 -04:00
xxhash.c