Wow, just wow. These perf improvements are great. ASIC accelerated filesystems is just crazy
### Performance
* ARC Buffer Data (ABD) - Allocates ARC data buffers using scatter lists
of pages instead of virtual memory. This approach minimizes
fragmentation on the system allowing for a more efficient use of
memory. The reduced demand for virtual memory also improves stability
and performance on 32-bit architectures.
* Compressed ARC - Cached file data is compressed by default in memory
and uncompressed on demand. This allows for an larger effective cache
which improves overall performance.
* Vectorized RAIDZ - Hardware optimized RAIDZ which reduces CPU usage.
Supported SIMD instructions: sse2, ssse3, avx2, avx512f, and avx512bw,
neon, neonx2
* Vectorized checksums - Hardware optimized Fletcher-4 checksums which
reduce CPU usage. Supported SIMD instructions: sse2, ssse3, avx2,
avx512f, neon
let me rephrase gbrown_'s question: which part of my CPU is specific to ZFS? Because that's what ASIC means. The acronym stands for Application-specific integrated circuit.
### Performance
* ARC Buffer Data (ABD) - Allocates ARC data buffers using scatter lists of pages instead of virtual memory. This approach minimizes fragmentation on the system allowing for a more efficient use of memory. The reduced demand for virtual memory also improves stability and performance on 32-bit architectures.
* Compressed ARC - Cached file data is compressed by default in memory and uncompressed on demand. This allows for an larger effective cache which improves overall performance.
* Vectorized RAIDZ - Hardware optimized RAIDZ which reduces CPU usage. Supported SIMD instructions: sse2, ssse3, avx2, avx512f, and avx512bw, neon, neonx2
* Vectorized checksums - Hardware optimized Fletcher-4 checksums which reduce CPU usage. Supported SIMD instructions: sse2, ssse3, avx2, avx512f, neon
* GZIP compression offloading - Hardware optimized GZIP compression offloading with QAT accelerator.
* Metadata performance - Overall improved metadata performance. Optimizations include a multi-threaded allocator, batched quota updates, improved prefetching, and streamlined call paths.
* Faster RAIDZ resilver - When resilvering RAIDZ intelligently skips sections of the device which don't need to be rebuilt.