mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-26 19:19:32 +03:00
985c33b132
This commit adds BLAKE3 checksums to OpenZFS, it has similar performance to Edon-R, but without the caveats around the latter. Homepage of BLAKE3: https://github.com/BLAKE3-team/BLAKE3 Wikipedia: https://en.wikipedia.org/wiki/BLAKE_(hash_function)#BLAKE3 Short description of Wikipedia: BLAKE3 is a cryptographic hash function based on Bao and BLAKE2, created by Jack O'Connor, Jean-Philippe Aumasson, Samuel Neves, and Zooko Wilcox-O'Hearn. It was announced on January 9, 2020, at Real World Crypto. BLAKE3 is a single algorithm with many desirable features (parallelism, XOF, KDF, PRF and MAC), in contrast to BLAKE and BLAKE2, which are algorithm families with multiple variants. BLAKE3 has a binary tree structure, so it supports a practically unlimited degree of parallelism (both SIMD and multithreading) given enough input. The official Rust and C implementations are dual-licensed as public domain (CC0) and the Apache License. Along with adding the BLAKE3 hash into the OpenZFS infrastructure a new benchmarking file called chksum_bench was introduced. When read it reports the speed of the available checksum functions. On Linux: cat /proc/spl/kstat/zfs/chksum_bench On FreeBSD: sysctl kstat.zfs.misc.chksum_bench This is an example output of an i3-1005G1 test system with Debian 11: implementation 1k 4k 16k 64k 256k 1m 4m edonr-generic 1196 1602 1761 1749 1762 1759 1751 skein-generic 546 591 608 615 619 612 616 sha256-generic 240 300 316 314 304 285 276 sha512-generic 353 441 467 476 472 467 426 blake3-generic 308 313 313 313 312 313 312 blake3-sse2 402 1289 1423 1446 1432 1458 1413 blake3-sse41 427 1470 1625 1704 1679 1607 1629 blake3-avx2 428 1920 3095 3343 3356 3318 3204 blake3-avx512 473 2687 4905 5836 5844 5643 5374 Output on Debian 5.10.0-10-amd64 system: (Ryzen 7 5800X) implementation 1k 4k 16k 64k 256k 1m 4m edonr-generic 1840 2458 2665 2719 2711 2723 2693 skein-generic 870 966 996 992 1003 1005 1009 sha256-generic 415 442 453 455 457 457 457 sha512-generic 608 690 711 718 719 720 721 blake3-generic 301 313 311 309 309 310 310 blake3-sse2 343 1865 2124 2188 2180 2181 2186 blake3-sse41 364 2091 2396 2509 2463 2482 2488 blake3-avx2 365 2590 4399 4971 4915 4802 4764 Output on Debian 5.10.0-9-powerpc64le system: (POWER 9) implementation 1k 4k 16k 64k 256k 1m 4m edonr-generic 1213 1703 1889 1918 1957 1902 1907 skein-generic 434 492 520 522 511 525 525 sha256-generic 167 183 187 188 188 187 188 sha512-generic 186 216 222 221 225 224 224 blake3-generic 153 152 154 153 151 153 153 blake3-sse2 391 1170 1366 1406 1428 1426 1414 blake3-sse41 352 1049 1212 1174 1262 1258 1259 Output on Debian 5.10.0-11-arm64 system: (Pi400) implementation 1k 4k 16k 64k 256k 1m 4m edonr-generic 487 603 629 639 643 641 641 skein-generic 271 299 303 308 309 309 307 sha256-generic 117 127 128 130 130 129 130 sha512-generic 145 165 170 172 173 174 175 blake3-generic 81 29 71 89 89 89 89 blake3-sse2 112 323 368 379 380 371 374 blake3-sse41 101 315 357 368 369 364 360 Structurally, the new code is mainly split into these parts: - 1x cross platform generic c variant: blake3_generic.c - 4x assembly for X86-64 (SSE2, SSE4.1, AVX2, AVX512) - 2x assembly for ARMv8 (NEON converted from SSE2) - 2x assembly for PPC64-LE (POWER8 converted from SSE2) - one file for switching between the implementations Note the PPC64 assembly requires the VSX instruction set and the kfpu_begin() / kfpu_end() calls on PowerPC were updated accordingly. Reviewed-by: Felix Dörre <felix@dogcraft.de> Reviewed-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Tino Reichardt <milky-zfs@mcmilk.de> Co-authored-by: Rich Ercolani <rincebrain@gmail.com> Closes #10058 Closes #12918
310 lines
12 KiB
Plaintext
310 lines
12 KiB
Plaintext
MAINTAINERS:
|
|
|
|
Brian Behlendorf <behlendorf1@llnl.gov>
|
|
Tony Hutter <hutter2@llnl.gov>
|
|
|
|
PAST MAINTAINERS:
|
|
|
|
Ned Bass <bass6@llnl.gov>
|
|
|
|
CONTRIBUTORS:
|
|
|
|
Aaron Fineman <abyxcos@gmail.com>
|
|
Adam Leventhal <ahl@delphix.com>
|
|
Adam Stevko <adam.stevko@gmail.com>
|
|
Ahmed G <ahmedg@delphix.com>
|
|
Akash Ayare <aayare@delphix.com>
|
|
Alan Somers <asomers@gmail.com>
|
|
Alar Aun <spamtoaun@gmail.com>
|
|
Albert Lee <trisk@nexenta.com>
|
|
Alec Salazar <alec.j.salazar@gmail.com>
|
|
Alejandro R. Sedeño <asedeno@mit.edu>
|
|
Alek Pinchuk <alek@nexenta.com>
|
|
Alex Braunegg <alex.braunegg@gmail.com>
|
|
Alex McWhirter <alexmcwhirter@triadic.us>
|
|
Alex Reece <alex@delphix.com>
|
|
Alex Wilson <alex.wilson@joyent.com>
|
|
Alex Zhuravlev <alexey.zhuravlev@intel.com>
|
|
Alexander Eremin <a.eremin@nexenta.com>
|
|
Alexander Motin <mav@freebsd.org>
|
|
Alexander Pyhalov <apyhalov@gmail.com>
|
|
Alexander Stetsenko <ams@nexenta.com>
|
|
Alexey Shvetsov <alexxy@gentoo.org>
|
|
Alexey Smirnoff <fling@member.fsf.org>
|
|
Allan Jude <allanjude@freebsd.org>
|
|
AndCycle <andcycle@andcycle.idv.tw>
|
|
Andreas Buschmann <andreas.buschmann@tech.net.de>
|
|
Andreas Dilger <adilger@intel.com>
|
|
Andrew Barnes <barnes333@gmail.com>
|
|
Andrew Hamilton <ahamilto@tjhsst.edu>
|
|
Andrew Reid <ColdCanuck@nailedtotheperch.com>
|
|
Andrew Stormont <andrew.stormont@nexenta.com>
|
|
Andrew Tselischev <andrewtselischev@gmail.com>
|
|
Andrey Vesnovaty <andrey.vesnovaty@gmail.com>
|
|
Andriy Gapon <avg@freebsd.org>
|
|
Andy Bakun <github@thwartedefforts.org>
|
|
Aniruddha Shankar <k@191a.net>
|
|
Antonio Russo <antonio.e.russo@gmail.com>
|
|
Arkadiusz Bubała <arkadiusz.bubala@open-e.com>
|
|
Arne Jansen <arne@die-jansens.de>
|
|
Aron Xu <happyaron.xu@gmail.com>
|
|
Bart Coddens <bart.coddens@gmail.com>
|
|
Basil Crow <basil.crow@delphix.com>
|
|
Huang Liu <liu.huang@zte.com.cn>
|
|
Ben Allen <bsallen@alcf.anl.gov>
|
|
Ben Rubson <ben.rubson@gmail.com>
|
|
Benjamin Albrecht <git@albrecht.io>
|
|
Bill McGonigle <bill-github.com-public1@bfccomputing.com>
|
|
Bill Pijewski <wdp@joyent.com>
|
|
Boris Protopopov <boris.protopopov@nexenta.com>
|
|
Brad Lewis <brad.lewis@delphix.com>
|
|
Brian Behlendorf <behlendorf1@llnl.gov>
|
|
Brian J. Murrell <brian@sun.com>
|
|
Caleb James DeLisle <calebdelisle@lavabit.com>
|
|
Cao Xuewen <cao.xuewen@zte.com.cn>
|
|
Carlo Landmeter <clandmeter@gmail.com>
|
|
Carlos Alberto Lopez Perez <clopez@igalia.com>
|
|
Chaoyu Zhang <zhang.chaoyu@zte.com.cn>
|
|
Chen Can <chen.can2@zte.com.cn>
|
|
Chen Haiquan <oc@yunify.com>
|
|
Chip Parker <aparker@enthought.com>
|
|
Chris Burroughs <chris.burroughs@gmail.com>
|
|
Chris Dunlap <cdunlap@llnl.gov>
|
|
Chris Dunlop <chris@onthe.net.au>
|
|
Chris Siden <chris.siden@delphix.com>
|
|
Chris Wedgwood <cw@f00f.org>
|
|
Chris Williamson <chris.williamson@delphix.com>
|
|
Chris Zubrzycki <github@mid-earth.net>
|
|
Christ Schlacta <aarcane@aarcane.info>
|
|
Christer Ekholm <che@chrekh.se>
|
|
Christian Kohlschütter <christian@kohlschutter.com>
|
|
Christian Neukirchen <chneukirchen@gmail.com>
|
|
Christian Schwarz <me@cschwarz.com>
|
|
Christopher Voltz <cjunk@voltz.ws>
|
|
Chunwei Chen <david.chen@nutanix.com>
|
|
Clemens Fruhwirth <clemens@endorphin.org>
|
|
Coleman Kane <ckane@colemankane.org>
|
|
Colin Ian King <colin.king@canonical.com>
|
|
Craig Loomis <cloomis@astro.princeton.edu>
|
|
Craig Sanders <github@taz.net.au>
|
|
Cyril Plisko <cyril.plisko@infinidat.com>
|
|
DHE <git@dehacked.net>
|
|
Damian Wojsław <damian@wojslaw.pl>
|
|
Dan Kimmel <dan.kimmel@delphix.com>
|
|
Dan McDonald <danmcd@nexenta.com>
|
|
Dan Swartzendruber <dswartz@druber.com>
|
|
Dan Vatca <dan.vatca@gmail.com>
|
|
Daniel Hoffman <dj.hoffman@delphix.com>
|
|
Daniel Verite <daniel@verite.pro>
|
|
Daniil Lunev <d.lunev.mail@gmail.com>
|
|
Darik Horn <dajhorn@vanadac.com>
|
|
Dave Eddy <dave@daveeddy.com>
|
|
David Lamparter <equinox@diac24.net>
|
|
David Qian <david.qian@intel.com>
|
|
David Quigley <david.quigley@intel.com>
|
|
Debabrata Banerjee <dbanerje@akamai.com>
|
|
Denys Rtveliashvili <denys@rtveliashvili.name>
|
|
Derek Dai <daiderek@gmail.com>
|
|
Dimitri John Ledkov <xnox@ubuntu.com>
|
|
Dmitry Khasanov <pik4ez@gmail.com>
|
|
Dominik Hassler <hadfl@omniosce.org>
|
|
Dominik Honnef <dominikh@fork-bomb.org>
|
|
Don Brady <don.brady@delphix.com>
|
|
Dr. András Korn <korn-github.com@elan.rulez.org>
|
|
Eli Rosenthal <eli.rosenthal@delphix.com>
|
|
Eric Desrochers <eric.desrochers@canonical.com>
|
|
Eric Dillmann <eric@jave.fr>
|
|
Eric Schrock <Eric.Schrock@delphix.com>
|
|
Etienne Dechamps <etienne@edechamps.fr>
|
|
Evan Susarret <evansus@gmail.com>
|
|
Fabian Grünbichler <f.gruenbichler@proxmox.com>
|
|
Fajar A. Nugraha <github@fajar.net>
|
|
Fan Yong <fan.yong@intel.com>
|
|
Feng Sun <loyou85@gmail.com>
|
|
Frederik Wessels <wessels147@gmail.com>
|
|
Frédéric Vanniere <f.vanniere@planet-work.com>
|
|
Garrett D'Amore <garrett@nexenta.com>
|
|
Garrison Jensen <garrison.jensen@gmail.com>
|
|
Gary Mills <gary_mills@fastmail.fm>
|
|
Gaurav Kumar <gauravk.18@gmail.com>
|
|
GeLiXin <ge.lixin@zte.com.cn>
|
|
George Amanakis <g_amanakis@yahoo.com>
|
|
George Melikov <mail@gmelikov.ru>
|
|
George Wilson <gwilson@delphix.com>
|
|
Georgy Yakovlev <ya@sysdump.net>
|
|
Giuseppe Di Natale <guss80@gmail.com>
|
|
Gordan Bobic <gordan@redsleeve.org>
|
|
Gordon Ross <gwr@nexenta.com>
|
|
Gregor Kopka <gregor@kopka.net>
|
|
Grischa Zengel <github.zfsonlinux@zengel.info>
|
|
Gunnar Beutner <gunnar@beutner.name>
|
|
Gvozden Neskovic <neskovic@gmail.com>
|
|
Hajo Möller <dasjoe@gmail.com>
|
|
Hans Rosenfeld <hans.rosenfeld@nexenta.com>
|
|
Håkan Johansson <f96hajo@chalmers.se>
|
|
Igor Kozhukhov <ikozhukhov@gmail.com>
|
|
Igor Lvovsky <ilvovsky@gmail.com>
|
|
Isaac Huang <he.huang@intel.com>
|
|
JK Dingwall <james@dingwall.me.uk>
|
|
Jacek Fefliński <feflik@gmail.com>
|
|
James Cowgill <james.cowgill@mips.com>
|
|
James Lee <jlee@thestaticvoid.com>
|
|
James Pan <jiaming.pan@yahoo.com>
|
|
Jan Engelhardt <jengelh@inai.de>
|
|
Jan Kryl <jan.kryl@nexenta.com>
|
|
Jan Sanislo <oystr@cs.washington.edu>
|
|
Jason King <jason.brian.king@gmail.com>
|
|
Jason Zaman <jasonzaman@gmail.com>
|
|
Javen Wu <wu.javen@gmail.com>
|
|
Jeremy Gill <jgill@parallax-innovations.com>
|
|
Jeremy Jones <jeremy@delphix.com>
|
|
Jerry Jelinek <jerry.jelinek@joyent.com>
|
|
Jinshan Xiong <jinshan.xiong@intel.com>
|
|
Joe Stein <joe.stein@delphix.com>
|
|
John Albietz <inthecloud247@gmail.com>
|
|
John Eismeier <john.eismeier@gmail.com>
|
|
John L. Hammond <john.hammond@intel.com>
|
|
John Layman <jlayman@sagecloud.com>
|
|
John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
|
|
John Wren Kennedy <john.kennedy@delphix.com>
|
|
Johnny Stenback <github@jstenback.com>
|
|
Jorgen Lundman <lundman@lundman.net>
|
|
Josef 'Jeff' Sipek <josef.sipek@nexenta.com>
|
|
Joshua M. Clulow <josh@sysmgr.org>
|
|
Justin Bedő <cu@cua0.org>
|
|
Justin Lecher <jlec@gentoo.org>
|
|
Justin T. Gibbs <gibbs@FreeBSD.org>
|
|
Jörg Thalheim <joerg@higgsboson.tk>
|
|
KORN Andras <korn@elan.rulez.org>
|
|
Kamil Domański <kamil@domanski.co>
|
|
Karsten Kretschmer <kkretschmer@gmail.com>
|
|
Kash Pande <kash@tripleback.net>
|
|
Keith M Wesolowski <wesolows@foobazco.org>
|
|
Kevin Tanguy <kevin.tanguy@ovh.net>
|
|
KireinaHoro <i@jsteward.moe>
|
|
Kjeld Schouten-Lebbing <kjeld@schouten-lebbing.nl>
|
|
Kohsuke Kawaguchi <kk@kohsuke.org>
|
|
Kyle Blatter <kyleblatter@llnl.gov>
|
|
Kyle Fuller <inbox@kylefuller.co.uk>
|
|
Loli <ezomori.nozomu@gmail.com>
|
|
Lars Johannsen <laj@it.dk>
|
|
Li Dongyang <dongyang.li@anu.edu.au>
|
|
Li Wei <W.Li@Sun.COM>
|
|
Lukas Wunner <lukas@wunner.de>
|
|
Madhav Suresh <madhav.suresh@delphix.com>
|
|
Manoj Joseph <manoj.joseph@delphix.com>
|
|
Manuel Amador (Rudd-O) <rudd-o@rudd-o.com>
|
|
Marcel Huber <marcelhuberfoo@gmail.com>
|
|
Marcel Telka <marcel.telka@nexenta.com>
|
|
Marcel Wysocki <maci.stgn@gmail.com>
|
|
Mark Shellenbaum <Mark.Shellenbaum@Oracle.COM>
|
|
Mark Wright <markwright@internode.on.net>
|
|
Martin Matuska <mm@FreeBSD.org>
|
|
Massimo Maggi <me@massimo-maggi.eu>
|
|
Matt Johnston <matt@fugro-fsi.com.au>
|
|
Matt Kemp <matt@mattikus.com>
|
|
Matthew Ahrens <matt@delphix.com>
|
|
Matthew Thode <mthode@mthode.org>
|
|
Matus Kral <matuskral@me.com>
|
|
Max Grossman <max.grossman@delphix.com>
|
|
Maximilian Mehnert <maximilian.mehnert@gmx.de>
|
|
Michael Gebetsroither <michael@mgeb.org>
|
|
Michael Kjorling <michael@kjorling.se>
|
|
Michael Martin <mgmartin.mgm@gmail.com>
|
|
Michael Niewöhner <foss@mniewoehner.de>
|
|
Mike Gerdts <mike.gerdts@joyent.com>
|
|
Mike Harsch <mike@harschsystems.com>
|
|
Mike Leddy <mike.leddy@gmail.com>
|
|
Mike Swanson <mikeonthecomputer@gmail.com>
|
|
Milan Jurik <milan.jurik@xylab.cz>
|
|
Morgan Jones <mjones@rice.edu>
|
|
Moritz Maxeiner <moritz@ucworks.org>
|
|
Nathaniel Clark <Nathaniel.Clark@misrule.us>
|
|
Nathaniel Wesley Filardo <nwf@cs.jhu.edu>
|
|
Nav Ravindranath <nav@delphix.com>
|
|
Neal Gompa (ニール・ゴンパ) <ngompa13@gmail.com>
|
|
Ned Bass <bass6@llnl.gov>
|
|
Neependra Khare <neependra@kqinfotech.com>
|
|
Neil Stockbridge <neil@dist.ro>
|
|
Nick Garvey <garvey.nick@gmail.com>
|
|
Nikolay Borisov <n.borisov.lkml@gmail.com>
|
|
Olaf Faaland <faaland1@llnl.gov>
|
|
Oleg Drokin <green@linuxhacker.ru>
|
|
Oleg Stepura <oleg@stepura.com>
|
|
Patrik Greco <sikevux@sikevux.se>
|
|
Paul B. Henson <henson@acm.org>
|
|
Paul Dagnelie <pcd@delphix.com>
|
|
Paul Zuchowski <pzuchowski@datto.com>
|
|
Pavel Boldin <boldin.pavel@gmail.com>
|
|
Pavel Zakharov <pavel.zakharov@delphix.com>
|
|
Pawel Jakub Dawidek <pjd@FreeBSD.org>
|
|
Pedro Giffuni <pfg@freebsd.org>
|
|
Peng <peng.hse@xtaotech.com>
|
|
Peter Ashford <ashford@accs.com>
|
|
Prakash Surya <prakash.surya@delphix.com>
|
|
Prasad Joshi <prasadjoshi124@gmail.com>
|
|
Ralf Ertzinger <ralf@skytale.net>
|
|
Randall Mason <ClashTheBunny@gmail.com>
|
|
Remy Blank <remy.blank@pobox.com>
|
|
Ricardo M. Correia <ricardo.correia@oracle.com>
|
|
Rich Ercolani <rincebrain@gmail.com>
|
|
Richard Elling <Richard.Elling@RichardElling.com>
|
|
Richard Laager <rlaager@wiktel.com>
|
|
Richard Lowe <richlowe@richlowe.net>
|
|
Richard Sharpe <rsharpe@samba.org>
|
|
Richard Yao <ryao@gentoo.org>
|
|
Rohan Puri <rohan.puri15@gmail.com>
|
|
Romain Dolbeau <romain.dolbeau@atos.net>
|
|
Roman Strashkin <roman.strashkin@nexenta.com>
|
|
Ruben Kerkhof <ruben@rubenkerkhof.com>
|
|
Saso Kiselkov <saso.kiselkov@nexenta.com>
|
|
Scot W. Stevenson <scot.stevenson@gmail.com>
|
|
Sean Eric Fagan <sef@ixsystems.com>
|
|
Sebastian Gottschall <s.gottschall@dd-wrt.com>
|
|
Sen Haerens <sen@senhaerens.be>
|
|
Serapheim Dimitropoulos <serapheim@delphix.com>
|
|
Seth Forshee <seth.forshee@canonical.com>
|
|
Shampavman <sham.pavman@nexenta.com>
|
|
Shen Yan <shenyanxxxy@qq.com>
|
|
Simon Guest <simon.guest@tesujimath.org>
|
|
Simon Klinkert <simon.klinkert@gmail.com>
|
|
Sowrabha Gopal <sowrabha.gopal@delphix.com>
|
|
Stanislav Seletskiy <s.seletskiy@gmail.com>
|
|
Steffen Müthing <steffen.muething@iwr.uni-heidelberg.de>
|
|
Stephen Blinick <stephen.blinick@delphix.com>
|
|
Steve Dougherty <sdougherty@barracuda.com>
|
|
Steven Burgess <sburgess@dattobackup.com>
|
|
Steven Hartland <smh@freebsd.org>
|
|
Steven Johnson <sjohnson@sakuraindustries.com>
|
|
Stian Ellingsen <stian@plaimi.net>
|
|
Suman Chakravartula <schakrava@gmail.com>
|
|
Sydney Vanda <sydney.m.vanda@intel.com>
|
|
Sören Tempel <soeren+git@soeren-tempel.net>
|
|
Thijs Cramer <thijs.cramer@gmail.com>
|
|
Tim Chase <tim@chase2k.com>
|
|
Tim Connors <tconnors@rather.puzzling.org>
|
|
Tim Crawford <tcrawford@datto.com>
|
|
Tim Haley <Tim.Haley@Sun.COM>
|
|
Tino Reichardt <milky-zfs@mcmilk.de>
|
|
Tobin Harding <me@tobin.cc>
|
|
Tom Caputi <tcaputi@datto.com>
|
|
Tom Matthews <tom@axiom-partners.com>
|
|
Tom Prince <tom.prince@ualberta.net>
|
|
Tomohiro Kusumi <kusumi.tomohiro@gmail.com>
|
|
Tony Hutter <hutter2@llnl.gov>
|
|
Toomas Soome <tsoome@me.com>
|
|
Trey Dockendorf <treydock@gmail.com>
|
|
Turbo Fredriksson <turbo@bayour.com>
|
|
Tyler J. Stachecki <stachecki.tyler@gmail.com>
|
|
Vitaut Bajaryn <vitaut.bayaryn@gmail.com>
|
|
Weigang Li <weigang.li@intel.com>
|
|
Will Andrews <will@freebsd.org>
|
|
Will Rouesnel <w.rouesnel@gmail.com>
|
|
Wolfgang Bumiller <w.bumiller@proxmox.com>
|
|
Xin Li <delphij@FreeBSD.org>
|
|
Ying Zhu <casualfisher@gmail.com>
|
|
YunQiang Su <syq@debian.org>
|
|
Yuri Pankov <yuri.pankov@gmail.com>
|
|
Yuxuan Shui <yshuiv7@gmail.com>
|
|
Zachary Bedell <zac@thebedells.org>
|