mirror_zfs/module
Yann Collet 776441152e zstd: Refactor prefetching for the decoding loop
Following facebook/zstd#2545, I noticed that one field in `seq_t` is
optional, and only used in combination with prefetching. (This may have
contributed to static analyzer failure to detect correct
initialization).

I then wondered if it would be possible to rewrite the code so that this
optional part is handled directly by the prefetching code rather than
delegated as an option into `ZSTD_decodeSequence()`.

This resulted into this refactoring exercise where the prefetching
responsibility is better isolated into its own function and
`ZSTD_decodeSequence()` is streamlined to contain strictly Sequence
decoding operations.  Incidently, due to better code locality, it
reduces the need to send information around, leading to simplified
interface, and smaller state structures.

Port of facebook/zstd@f5434663ea

Reported-by: Coverity (CID 1462271)
Reviewed-by: Damian Szuberski <szuberskidamian@gmail.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Tino Reichardt <milky-zfs@mcmilk.de>
Ported-by: Richard Yao <richard.yao@alumni.stonybrook.edu>
Closes #14212
2022-11-29 10:05:30 -08:00
..
avl Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
icp Convert some sprintf() calls to kmem_scnprintf() 2022-11-28 13:49:58 -08:00
lua Lua: Fix bad bitshift in lua_strx2number() 2022-11-29 09:53:33 -08:00
nvpair Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
os Fix the last two CFI callback prototype mismatches 2022-11-29 09:56:16 -08:00
unicode Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
zcommon Convert some sprintf() calls to kmem_scnprintf() 2022-11-28 13:49:58 -08:00
zfs Fix NULL pointer dereference in dbuf_prefetch_indirect_done() 2022-11-29 10:00:50 -08:00
zstd zstd: Refactor prefetching for the decoding loop 2022-11-29 10:05:30 -08:00
.gitignore FreeBSD: Ignore symlink to i386 includes 2022-08-02 16:34:23 -07:00
Kbuild.in icp: fix rodata being marked as text in x86 Asm code 2022-11-04 11:25:51 -07:00
Makefile.bsd Cleanup dead spa_boot code 2022-09-13 16:40:10 -07:00
Makefile.in autoconf: use include directives instead of recursing down lib 2022-05-10 10:18:11 -07:00