Go to file
Gvozden Neskovic 37f520db2d Fletcher4: Incremental using SIMD
Combine incrementally computed fletcher4 checksums. Checksums are combined
a posteriori, allowing for parallel computation on chunks to be implemented if
required. The algorithm is general, and does not add changes in each SIMD
implementation.
New test in ztest verifies incremental fletcher computations.

Checksum combining matrix for two buffers `a` and `b`, where `Ca` and `Cb` are
respective fletcher4 checksums, `Cab` is combined checksum, `s` is size of buffer
`b` (divided by sizeof(uint32_t)) is:

Cab[A] = Cb[A] + Ca[A]
Cab[B] = Cb[B] + Ca[B] + s * Ca[A]
Cab[C] = Cb[C] + Ca[C] + s * Ca[B] + s(s+1)/2 * Ca[A]
Cab[D] = Cb[D] + Ca[D] + s * Ca[C] + s(s+1)/2 * Ca[B] + s(s+1)(s+2)/6 * Ca[A]

NOTE: this calculation overflows for larger buffers. Thus, internally, the calculation
is performed on 8MiB chunks.

Signed-off-by: Gvozden Neskovic <neskovic@gmail.com>
2016-10-05 16:41:46 +02:00
cmd Fletcher4: Incremental using SIMD 2016-10-05 16:41:46 +02:00
config Explicit block device plugging when submitting multiple BIOs 2016-09-29 13:13:31 -07:00
contrib Fix regression that broke dracut initramfs generation 2016-09-21 13:35:16 -07:00
etc Change /etc/mtab to /proc/self/mounts 2016-09-20 10:07:58 -07:00
include OpenZFS 4185 - add new cryptographic checksums to ZFS: SHA-512, Skein, Edon-R 2016-10-03 14:51:15 -07:00
lib Fix coverity defects: CID 150953, 147603, 147610 2016-10-04 18:15:57 -07:00
man OpenZFS 6585 - sha512, skein, and edonr have an unenforced dependency on extensible dataset 2016-10-03 14:51:21 -07:00
module Fletcher4: Incremental using SIMD 2016-10-05 16:41:46 +02:00
rpm OpenZFS - Performance regression suite for zfstest 2016-09-08 16:18:28 -07:00
scripts Merge OpenZFS 4185 2016-10-04 11:20:38 -07:00
tests Use 100MB pool for filetest_001_pos.ksh checksum test 2016-10-03 14:51:21 -07:00
udev Set proper dependency for string replacement targets 2016-08-02 10:28:29 -07:00
.gitignore Illumos Crypto Port module added to enable native encryption in zfs 2016-07-20 10:43:30 -07:00
.gitmodules Add zimport.sh compatibility test script 2014-02-21 12:10:31 -08:00
AUTHORS Add a missing > to AUTHORS 2014-09-02 14:18:53 -07:00
autogen.sh build: do not call boilerplate ourself 2013-04-02 10:55:20 -07:00
configure.ac OpenZFS 4185 - add new cryptographic checksums to ZFS: SHA-512, Skein, Edon-R 2016-10-03 14:51:15 -07:00
copy-builtin Illumos Crypto Port module added to enable native encryption in zfs 2016-07-20 10:43:30 -07:00
COPYRIGHT Update ZED copyright boilerplate 2015-05-11 15:07:00 -07:00
DISCLAIMER Fix minor typos and update marketing copy. 2013-03-21 12:51:06 -07:00
Makefile.am OpenZFS 4185 - add new cryptographic checksums to ZFS: SHA-512, Skein, Edon-R 2016-10-03 14:51:15 -07:00
META Tag 0.7.0-rc1 2016-09-07 10:31:23 -07:00
OPENSOLARIS.LICENSE Add CDDL license file 2008-12-01 14:49:34 -08:00
README.markdown Fix minor typos and update marketing copy. 2013-03-21 12:51:06 -07:00
TEST Add the ZFS Test Suite 2016-03-16 13:46:16 -07:00
zfs-script-config.sh.in Illumos Crypto Port module added to enable native encryption in zfs 2016-07-20 10:43:30 -07:00
zfs.release.in Move zfs.release generation to configure step 2012-07-12 12:22:51 -07:00

Native ZFS for Linux!

ZFS is an advanced file system and volume manager which was originally developed for Solaris and is now maintained by the Illumos community.

ZFS on Linux, which is also known as ZoL, is currently feature complete. It includes fully functional and stable SPA, DMU, ZVOL, and ZPL layers.

Full documentation for installing ZoL on your favorite Linux distribution can be found at: http://zfsonlinux.org