Re: git: 1f1e2261e341 - main - zfs: merge openzfs/zfs@deb121309

From: Andrew Turner <andrew_at_fubar.geek.nz>
Date: Fri, 24 Jun 2022 14:01:13 UTC
This broke the build on arm64 as we need to remove -mgeneral-regs-only from CFLAGS for b3_aarch64_sse2.S and b3_aarch64_sse41.S. I’ve pushed a fix in 52f6e63ab3656b417d8dd2b905569707c90c9ecf.

Andrew

> On 23 Jun 2022, at 16:50, Martin Matuska <mm@FreeBSD.org> wrote:
> 
> The branch main has been updated by mm:
> 
> URL: https://cgit.FreeBSD.org/src/commit/?id=1f1e2261e341e6ca6862f82261066ef1705f0a7a
> 
> commit 1f1e2261e341e6ca6862f82261066ef1705f0a7a
> Merge: a320e9dd51e6 deb1213098e2
> Author:     Martin Matuska <mm@FreeBSD.org>
> AuthorDate: 2022-06-23 15:47:42 +0000
> Commit:     Martin Matuska <mm@FreeBSD.org>
> CommitDate: 2022-06-23 15:49:33 +0000
> 
>    zfs: merge openzfs/zfs@deb121309
> 
>    Notable upstream pull request merges:
>      #12918 Introduce BLAKE3 checksums as an OpenZFS feature
>      #13553 Reduce ZIO io_lock contention on sorted scrub
>      #13537 Improve sorted scan memory accounting
>      #13540 AVL: Remove obsolete branching optimizations
>      #13563 FreeBSD: Improve crypto_dispatch() handling
> 
>    Obtained from:  OpenZFS
>    OpenZFS commit: deb1213098e2dc10e6eee5e5c57bb40584e096a6
> 
> cddl/lib/libicp/Makefile                           |   29 +-
> cddl/lib/libicp_rescue/Makefile                    |   29 +-
> cddl/lib/libzpool/Makefile                         |    2 +
> sys/contrib/openzfs/AUTHORS                        |    1 +
> sys/contrib/openzfs/cmd/zfs/zfs_iter.c             |    6 +-
> sys/contrib/openzfs/cmd/zfs/zfs_main.c             |   68 +-
> sys/contrib/openzfs/cmd/zpool/zpool_main.c         |    4 +-
> sys/contrib/openzfs/cmd/ztest.c                    |   89 +
> sys/contrib/openzfs/config/always-arch.m4          |    2 +
> sys/contrib/openzfs/config/kernel-add-disk.m4      |    3 +-
> sys/contrib/openzfs/config/kernel-blk-queue.m4     |   32 +
> sys/contrib/openzfs/config/kernel-user-ns-inum.m4  |   23 +
> sys/contrib/openzfs/config/kernel.m4               |    2 +
> .../contrib/dracut/90zfs/module-setup.sh.in        |    3 +-
> .../contrib/pyzfs/libzfs_core/_constants.py        |    1 +
> sys/contrib/openzfs/etc/Makefile.am                |    3 +
> .../etc/systemd/system/zfs-trim-monthly@.timer.in  |   12 +
> .../etc/systemd/system/zfs-trim-weekly@.timer.in   |   12 +
> .../etc/systemd/system/zfs-trim@.service.in        |   15 +
> sys/contrib/openzfs/include/Makefile.am            |    2 +
> sys/contrib/openzfs/include/libzfs.h               |   10 +
> .../openzfs/include/os/freebsd/spl/sys/ccompile.h  |    2 +
> .../include/os/linux/kernel/linux/blkdev_compat.h  |  111 +
> .../include/os/linux/kernel/linux/simd_powerpc.h   |   34 +-
> .../include/os/linux/kernel/linux/vfs_compat.h     |   16 -
> sys/contrib/openzfs/include/os/linux/spl/sys/uio.h |   39 +-
> .../openzfs/include/os/linux/spl/sys/zone.h        |   31 +-
> .../include/os/linux/zfs/sys/zfs_context_os.h      |    5 +
> sys/contrib/openzfs/include/sys/blake3.h           |  125 +
> sys/contrib/openzfs/include/sys/fs/zfs.h           |    6 +-
> sys/contrib/openzfs/include/sys/zfs_chksum.h       |   48 +
> sys/contrib/openzfs/include/sys/zfs_ioctl.h        |    3 +-
> sys/contrib/openzfs/include/sys/zio.h              |    1 +
> sys/contrib/openzfs/include/sys/zio_checksum.h     |   12 +-
> sys/contrib/openzfs/include/zfeature_common.h      |    1 +
> sys/contrib/openzfs/lib/libicp/Makefile.am         |   25 +-
> sys/contrib/openzfs/lib/libspl/include/sys/simd.h  |   18 +
> sys/contrib/openzfs/lib/libspl/include/sys/types.h |    2 +-
> sys/contrib/openzfs/lib/libspl/include/zone.h      |   12 +-
> sys/contrib/openzfs/lib/libspl/os/linux/zone.c     |   32 +-
> sys/contrib/openzfs/lib/libuutil/libuutil.abi      |    2 +-
> sys/contrib/openzfs/lib/libzfs/libzfs.abi          |   18 +-
> sys/contrib/openzfs/lib/libzfs/libzfs_crypto.c     |   10 +-
> sys/contrib/openzfs/lib/libzfs/libzfs_dataset.c    |   64 +-
> sys/contrib/openzfs/lib/libzfs/libzfs_diff.c       |    2 +-
> sys/contrib/openzfs/lib/libzfs/libzfs_impl.h       |    4 +-
> sys/contrib/openzfs/lib/libzfs/libzfs_pool.c       |  299 +-
> sys/contrib/openzfs/lib/libzfs/libzfs_sendrecv.c   |   36 +-
> sys/contrib/openzfs/lib/libzfs/libzfs_util.c       |   12 +-
> .../openzfs/lib/libzfs/os/freebsd/libzfs_compat.c  |    2 -
> .../openzfs/lib/libzfs/os/linux/libzfs_pool_os.c   |    2 +-
> .../openzfs/lib/libzfs/os/linux/libzfs_util_os.c   |   71 +
> .../openzfs/lib/libzfs_core/libzfs_core.abi        |    2 +-
> sys/contrib/openzfs/lib/libzpool/Makefile.am       |    2 +
> sys/contrib/openzfs/man/Makefile.am                |    2 +
> sys/contrib/openzfs/man/man4/zfs.4                 |   69 +-
> sys/contrib/openzfs/man/man7/zfsprops.7            |   10 +-
> sys/contrib/openzfs/man/man7/zpool-features.7      |    8 +
> sys/contrib/openzfs/man/man8/zfs-unzone.8          |    1 +
> sys/contrib/openzfs/man/man8/zfs-zone.8            |  116 +
> sys/contrib/openzfs/man/man8/zpool-trim.8          |   21 +
> sys/contrib/openzfs/module/Kbuild.in               |   38 +-
> sys/contrib/openzfs/module/Makefile.bsd            |   34 +-
> sys/contrib/openzfs/module/avl/avl.c               |   24 +-
> .../openzfs/module/icp/algs/blake3/blake3.c        |  732 +++++
> .../module/icp/algs/blake3/blake3_generic.c        |  202 ++
> .../openzfs/module/icp/algs/blake3/blake3_impl.c   |  284 ++
> .../openzfs/module/icp/algs/blake3/blake3_impl.h   |  213 ++
> .../openzfs/module/icp/algs/blake3/blake3_x86-64.c |  248 ++
> .../icp/asm-aarch64/blake3/b3_aarch64_sse2.S       | 2450 ++++++++++++++++
> .../icp/asm-aarch64/blake3/b3_aarch64_sse41.S      | 2463 ++++++++++++++++
> .../module/icp/asm-ppc64/blake3/b3_ppc64le_sse2.S  | 2823 ++++++++++++++++++
> .../module/icp/asm-ppc64/blake3/b3_ppc64le_sse41.S | 3064 ++++++++++++++++++++
> .../module/icp/asm-x86_64/blake3/blake3_avx2.S     | 1845 ++++++++++++
> .../module/icp/asm-x86_64/blake3/blake3_avx512.S   | 2618 +++++++++++++++++
> .../module/icp/asm-x86_64/blake3/blake3_sse2.S     | 2323 +++++++++++++++
> .../module/icp/asm-x86_64/blake3/blake3_sse41.S    | 2058 +++++++++++++
> .../openzfs/module/os/freebsd/zfs/crypto_os.c      |   41 +-
> .../openzfs/module/os/linux/spl/spl-generic.c      |    6 +
> sys/contrib/openzfs/module/os/linux/spl/spl-zone.c |  424 +++
> sys/contrib/openzfs/module/os/linux/zfs/policy.c   |    2 +-
> .../openzfs/module/os/linux/zfs/zfs_ioctl_os.c     |   47 +
> sys/contrib/openzfs/module/os/linux/zfs/zfs_uio.c  |  154 +-
> .../openzfs/module/os/linux/zfs/zfs_vfsops.c       |   20 +
> .../openzfs/module/os/linux/zfs/zpl_ctldir.c       |   17 +
> .../openzfs/module/os/linux/zfs/zpl_super.c        |    1 +
> .../openzfs/module/os/linux/zfs/zpl_xattr.c        |    5 +-
> sys/contrib/openzfs/module/os/linux/zfs/zvol_os.c  |  632 +++-
> .../openzfs/module/zcommon/zfeature_common.c       |   31 +-
> sys/contrib/openzfs/module/zcommon/zfs_prop.c      |    8 +-
> sys/contrib/openzfs/module/zfs/blake3_zfs.c        |  117 +
> sys/contrib/openzfs/module/zfs/dsl_prop.c          |   10 +-
> sys/contrib/openzfs/module/zfs/dsl_scan.c          |   26 +-
> sys/contrib/openzfs/module/zfs/spa_misc.c          |    3 +
> sys/contrib/openzfs/module/zfs/vdev.c              |    6 +-
> sys/contrib/openzfs/module/zfs/zcp_synctask.c      |    2 +-
> sys/contrib/openzfs/module/zfs/zfs_chksum.c        |  323 +++
> sys/contrib/openzfs/module/zfs/zfs_ioctl.c         |   14 +-
> sys/contrib/openzfs/module/zfs/zio_checksum.c      |    6 +
> sys/contrib/openzfs/tests/runfiles/common.run      |   10 +-
> sys/contrib/openzfs/tests/runfiles/linux.run       |    8 +-
> sys/contrib/openzfs/tests/zfs-tests/cmd/.gitignore |    1 +
> .../openzfs/tests/zfs-tests/cmd/Makefile.am        |    6 +-
> .../tests/zfs-tests/cmd/checksum/blake3_test.c     |  575 ++++
> .../tests/zfs-tests/cmd/checksum/edonr_test.c      |    3 -
> .../tests/zfs-tests/cmd/checksum/sha2_test.c       |    3 -
> .../tests/zfs-tests/cmd/checksum/skein_test.c      |    3 -
> .../openzfs/tests/zfs-tests/include/commands.cfg   |    5 +
> .../openzfs/tests/zfs-tests/include/libtest.shlib  |   45 +-
> .../tests/zfs-tests/include/properties.shlib       |    2 +-
> .../openzfs/tests/zfs-tests/include/tunables.cfg   |    1 +
> .../openzfs/tests/zfs-tests/tests/Makefile.am      |    9 +
> .../tests/functional/checksum/default.cfg          |    2 +-
> .../tests/functional/checksum/run_blake3_test.ksh  |   30 +
> .../cli_root/zfs_set/checksum_001_pos.ksh          |    2 +-
> .../functional/cli_root/zpool_get/zpool_get.cfg    |    1 +
> .../user_namespace/user_namespace_001.ksh          |    5 +
> .../user_namespace/user_namespace_002.ksh          |  115 +
> .../user_namespace/user_namespace_003.ksh          |   97 +
> .../user_namespace/user_namespace_004.ksh          |   67 +
> .../tests/functional/zvol/zvol_common.shlib        |   11 +
> .../functional/zvol/zvol_misc/zvol_misc_fua.ksh    |   96 +
> .../functional/zvol/zvol_misc/zvol_misc_trim.ksh   |  136 +
> .../tests/functional/zvol/zvol_stress/cleanup.ksh  |   36 +
> .../tests/functional/zvol/zvol_stress/setup.ksh    |   36 +
> .../functional/zvol/zvol_stress/zvol_stress.ksh    |  169 ++
> sys/modules/zfs/Makefile                           |   30 +-
> sys/modules/zfs/zfs_config.h                       |   10 +-
> sys/modules/zfs/zfs_gitrev.h                       |    2 +-
> 129 files changed, 25938 insertions(+), 516 deletions(-)
> 
> diff --cc cddl/lib/libicp/Makefile
> index 6a8e979ea836,000000000000..5b316453af9a
> mode 100644,000000..100644
> --- a/cddl/lib/libicp/Makefile
> +++ b/cddl/lib/libicp/Makefile
> @@@ -1,92 -1,0 +1,119 @@@
> +# $FreeBSD$
> +
> +.PATH: ${SRCTOP}/sys/contrib/openzfs/module/icp
> +
> +PACKAGE=	utilities
> +LIB=	icp
> +LIBADD=
> +
> +
> +.if ${MACHINE_ARCH} == "amd64"
> +ASM_SOURCES_C = asm-x86_64/aes/aeskey.c
> +ASM_SOURCES_AS = \
> +        asm-x86_64/aes/aes_amd64.S \
> +        asm-x86_64/aes/aes_aesni.S \
> +        asm-x86_64/modes/gcm_pclmulqdq.S \
> +        asm-x86_64/modes/aesni-gcm-x86_64.S \
> +        asm-x86_64/modes/ghash-x86_64.S \
> +        asm-x86_64/sha2/sha256_impl.S \
> -         asm-x86_64/sha2/sha512_impl.S
> ++        asm-x86_64/sha2/sha512_impl.S \
> ++        asm-x86_64/blake3/blake3_avx2.S \
> ++        asm-x86_64/blake3/blake3_avx512.S \
> ++        asm-x86_64/blake3/blake3_sse2.S \
> ++        asm-x86_64/blake3/blake3_sse41.S
> +
> +CFLAGS+= -D__amd64 -D_SYS_STACK_H -UHAVE_AES
> ++.elif ${MACHINE_ARCH} == "aarch64"
> ++ASM_SOURCES_C =
> ++ASM_SOURCES_AS = \
> ++        asm-aarch64/blake3/b3_aarch64_sse2.S \
> ++        asm-aarch64/blake3/b3_aarch64_sse41.S
> ++.elif ${MACHINE_ARCH} == "powerpc64"
> ++ASM_SOURCES_C =
> ++ASM_SOURCES_AS = \
> ++        asm-ppc64/blake3/b3_ppc64le_sse2.S \
> ++        asm-ppc64/blake3/b3_ppc64le_sse41.S
> +.else
> +ASM_SOURCES_C =
> +ASM_SOURCES_AS =
> +.endif
> +
> +
> +KERNEL_C = \
> +        spi/kcf_spi.c \
> +        api/kcf_ctxops.c \
> +        api/kcf_cipher.c \
> +        api/kcf_mac.c \
> +        algs/aes/aes_impl_aesni.c \
> +        algs/aes/aes_impl_generic.c \
> +        algs/aes/aes_impl_x86-64.c \
> +        algs/aes/aes_impl.c \
> +        algs/aes/aes_modes.c \
> ++        algs/blake3/blake3.c \
> ++        algs/blake3/blake3_generic.c \
> ++        algs/blake3/blake3_impl.c \
> ++        algs/blake3/blake3_x86-64.c \
> +        algs/edonr/edonr.c \
> +        algs/modes/modes.c \
> +        algs/modes/cbc.c \
> +        algs/modes/gcm_generic.c \
> +        algs/modes/gcm_pclmulqdq.c \
> +        algs/modes/gcm.c \
> +        algs/modes/ctr.c \
> +        algs/modes/ccm.c \
> +        algs/modes/ecb.c \
> +        algs/sha2/sha2.c \
> +        algs/skein/skein.c \
> +        algs/skein/skein_block.c \
> +        algs/skein/skein_iv.c \
> +        illumos-crypto.c \
> +        io/aes.c \
> +        io/sha2_mod.c \
> +        io/skein_mod.c \
> +        core/kcf_sched.c \
> +        core/kcf_prov_lib.c \
> +        core/kcf_callprov.c \
> +        core/kcf_mech_tabs.c \
> +        core/kcf_prov_tabs.c \
> +        $(ASM_SOURCES_C)
> +
> +
> +
> +
> +
> +
> +SRCS= $(ASM_SOURCES_AS) $(KERNEL_C)
> +
> +WARNS?=	2
> +SHLIB_MAJOR= 3
> +CSTD=	c99
> +CFLAGS+= -DIN_BASE
> +CFLAGS+= -I${SRCTOP}/sys/contrib/openzfs/include
> +CFLAGS+= -I${SRCTOP}/sys/contrib/openzfs/lib/libspl/include/
> +CFLAGS+= -I${SRCTOP}/sys/contrib/openzfs/lib/libspl/include/os/freebsd
> +CFLAGS+= -I${SRCTOP}/sys
> +CFLAGS+= -I${SRCTOP}/cddl/compat/opensolaris/include
> +CFLAGS+= -I${SRCTOP}/sys/contrib/openzfs/module/icp/include
> +CFLAGS+= -include ${SRCTOP}/sys/contrib/openzfs/include/os/freebsd/spl/sys/ccompile.h
> +CFLAGS+= -DHAVE_ISSETUGID
> +CFLAGS+= -include ${SRCTOP}/sys/modules/zfs/zfs_config.h
> +
> +
> +CFLAGS.aes_amd64.S+= -DLOCORE
> +CFLAGS.aes_aesni.S+= -DLOCORE
> +CFLAGS.gcm_pclmulqdq.S+= -DLOCORE
> +CFLAGS.aesni-gcm-x86_64.S+= -DLOCORE
> +CFLAGS.ghash-x86_64.S+= -DLOCORE
> +CFLAGS.sha256_impl.S+= -DLOCORE
> +CFLAGS.sha512_impl.S+= -DLOCORE
> ++CFLAGS.blake3_avx2.S = -DLOCORE
> ++CFLAGS.blake3_avx512.S = -DLOCORE
> ++CFLAGS.blake3_sse2.S = -DLOCORE
> ++CFLAGS.blake3_sse41.S = -DLOCORE
> ++CFLAGS.b3_aarch64_sse2.S = -DLOCORE
> ++CFLAGS.b3_aarch64_sse41.S = -DLOCORE
> ++CFLAGS.b3_ppc64le_sse2.S = -DLOCORE
> ++CFLAGS.b3_ppc64le_sse41.S = -DLOCORE
> ++
> +
> +.include <bsd.lib.mk>
> diff --cc cddl/lib/libicp_rescue/Makefile
> index d3e69d276d17,000000000000..3fd098bc86ed
> mode 100644,000000..100644
> --- a/cddl/lib/libicp_rescue/Makefile
> +++ b/cddl/lib/libicp_rescue/Makefile
> @@@ -1,85 -1,0 +1,112 @@@
> +# $FreeBSD$
> +
> +.PATH: ${SRCTOP}/sys/contrib/openzfs/module/icp
> +
> +PACKAGE=	utilities
> +LIB=	icp_rescue
> +LIBADD=
> +
> +
> +.if ${MACHINE_ARCH} == "amd64"
> +ASM_SOURCES_C = asm-x86_64/aes/aeskey.c
> +ASM_SOURCES_AS = \
> +        asm-x86_64/aes/aes_amd64.S \
> +        asm-x86_64/aes/aes_aesni.S \
> +        asm-x86_64/modes/gcm_pclmulqdq.S \
> +        asm-x86_64/modes/aesni-gcm-x86_64.S \
> +        asm-x86_64/sha2/sha256_impl.S \
> -         asm-x86_64/sha2/sha512_impl.S
> ++        asm-x86_64/sha2/sha512_impl.S \
> ++        asm-x86_64/blake3/blake3_avx2.S \
> ++        asm-x86_64/blake3/blake3_avx512.S \
> ++        asm-x86_64/blake3/blake3_sse2.S \
> ++        asm-x86_64/blake3/blake3_sse41.S
> +
> +CFLAGS+= -D__amd64 -D_SYS_STACK_H
> ++.elif ${MACHINE_ARCH} == "aarch64"
> ++ASM_SOURCES_C =
> ++ASM_SOURCES_AS = \
> ++        asm-aarch64/blake3/b3_aarch64_sse2.S \
> ++        asm-aarch64/blake3/b3_aarch64_sse41.S
> ++.elif ${MACHINE_ARCH} == "powerpc64"
> ++ASM_SOURCES_C =
> ++ASM_SOURCES_AS = \
> ++        asm-ppc64/blake3/b3_ppc64le_sse2.S \
> ++        asm-ppc64/blake3/b3_ppc64le_sse41.S
> +.else
> +ASM_SOURCES_C =
> +ASM_SOURCES_AS =
> +.endif
> +
> +
> +KERNEL_C = \
> +        spi/kcf_spi.c \
> +        api/kcf_ctxops.c \
> +        api/kcf_cipher.c \
> +        api/kcf_mac.c \
> +        algs/aes/aes_impl_aesni.c \
> +        algs/aes/aes_impl_generic.c \
> +        algs/aes/aes_impl_x86-64.c \
> +        algs/aes/aes_impl.c \
> +        algs/aes/aes_modes.c \
> ++        algs/blake3/blake3.c \
> ++        algs/blake3/blake3_generic.c \
> ++        algs/blake3/blake3_impl.c \
> ++        algs/blake3/blake3_x86-64.c \
> +        algs/edonr/edonr.c \
> +        algs/modes/modes.c \
> +        algs/modes/cbc.c \
> +        algs/modes/gcm_generic.c \
> +        algs/modes/gcm_pclmulqdq.c \
> +        algs/modes/gcm.c \
> +        algs/modes/ctr.c \
> +        algs/modes/ccm.c \
> +        algs/modes/ecb.c \
> +        algs/sha2/sha2.c \
> +        algs/skein/skein_block.c \
> +        illumos-crypto.c \
> +        io/aes.c \
> +        io/sha2_mod.c \
> +        io/skein_mod.c \
> +        core/kcf_sched.c \
> +        core/kcf_prov_lib.c \
> +        core/kcf_callprov.c \
> +        core/kcf_mech_tabs.c \
> +        core/kcf_prov_tabs.c \
> +        $(ASM_SOURCES_C)
> +
> +SRCS= $(ASM_SOURCES_AS) $(KERNEL_C)
> +
> +WARNS?=	2
> +SHLIB_MAJOR= 3
> +CSTD=	c99
> +CFLAGS+= -DIN_BASE
> +CFLAGS+= -I${SRCTOP}/sys/contrib/openzfs/include
> +CFLAGS+= -I${SRCTOP}/sys/contrib/openzfs/lib/libspl/include/
> +CFLAGS+= -I${SRCTOP}/sys/contrib/openzfs/lib/libspl/include/os/freebsd
> +CFLAGS+= -I${SRCTOP}/sys
> +CFLAGS+= -I${SRCTOP}/cddl/compat/opensolaris/include
> +CFLAGS+= -I${SRCTOP}/sys/contrib/openzfs/module/icp/include
> +CFLAGS+= -include ${SRCTOP}/sys/contrib/openzfs/include/os/freebsd/spl/sys/ccompile.h
> +CFLAGS+= -DHAVE_ISSETUGID -UHAVE_AVX -DRESCUE
> +CFLAGS+= -include ${SRCTOP}/sys/modules/zfs/zfs_config.h
> +
> +
> +CFLAGS.aes_amd64.S+= -DLOCORE
> +CFLAGS.aes_aesni.S+= -DLOCORE
> +CFLAGS.gcm_pclmulqdq.S+= -DLOCORE
> +CFLAGS.aesni-gcm-x86_64.S+= -DLOCORE
> +CFLAGS.ghash-x86_64.S+= -DLOCORE
> +CFLAGS.sha256_impl.S+= -DLOCORE
> +CFLAGS.sha512_impl.S+= -DLOCORE
> +CFLAGS.gcm.c+= -UCAN_USE_GCM_ASM
> ++CFLAGS.blake3_avx2.S = -DLOCORE
> ++CFLAGS.blake3_avx512.S = -DLOCORE
> ++CFLAGS.blake3_sse2.S = -DLOCORE
> ++CFLAGS.blake3_sse41.S = -DLOCORE
> ++CFLAGS.b3_aarch64_sse2.S = -DLOCORE
> ++CFLAGS.b3_aarch64_sse41.S = -DLOCORE
> ++CFLAGS.b3_ppc64le_sse2.S = -DLOCORE
> ++CFLAGS.b3_ppc64le_sse41.S = -DLOCORE
> ++
> +
> +.include <bsd.lib.mk>
> diff --cc cddl/lib/libzpool/Makefile
> index 69700ec51407,000000000000..92f1bda6d82a
> mode 100644,000000..100644
> --- a/cddl/lib/libzpool/Makefile
> +++ b/cddl/lib/libzpool/Makefile
> @@@ -1,331 -1,0 +1,333 @@@
> +# $FreeBSD$
> +
> +ZFSTOP=	${SRCTOP}/sys/contrib/openzfs
> +
> +# ZFS_COMMON_SRCS
> +.PATH: ${ZFSTOP}/module/zfs
> +.PATH: ${ZFSTOP}/module/zcommon
> +.PATH: ${ZFSTOP}/module/unicode
> +# LUA_SRCS
> +.PATH: ${ZFSTOP}/module/lua
> +# ZSTD_SRCS
> +.PATH: ${ZFSTOP}/module/zstd
> +.PATH: ${ZFSTOP}/module/zstd/lib/common
> +.PATH: ${ZFSTOP}/module/zstd/lib/compress
> +.PATH: ${ZFSTOP}/module/zstd/lib/decompress
> +
> +.PATH: ${ZFSTOP}/module/os/linux/zfs
> +
> +.PATH: ${ZFSTOP}/lib/libzpool
> +
> +.if exists(${SRCTOP}/sys/cddl/contrib/opensolaris/common/atomic/${MACHINE_ARCH}/opensolaris_atomic.S)
> +.PATH: ${SRCTOP}/sys/cddl/contrib/opensolaris/common/atomic/${MACHINE_ARCH}
> +ATOMIC_SRCS=	opensolaris_atomic.S
> +ACFLAGS+=	-Wa,--noexecstack
> +.else
> +.PATH: ${SRCTOP}/sys/cddl/compat/opensolaris/kern
> +ATOMIC_SRCS=	opensolaris_atomic.c
> +.endif
> +
> +.if ${MACHINE_ARCH} == "powerpc" || ${MACHINE_ARCH} == "powerpcspe"
> +# Don't waste GOT entries on small data.
> +PICFLAG=	-fPIC
> +.endif
> +
> +LIB=		zpool
> +
> +USER_C = \
> +	kernel.c \
> +	taskq.c \
> +	util.c
> +
> +KERNEL_C = \
> +	zfeature_common.c \
> +	zfs_comutil.c \
> +	zfs_deleg.c \
> +	zfs_fletcher.c \
> +	zfs_fletcher_superscalar.c \
> +	zfs_fletcher_superscalar4.c \
> +	zfs_namecheck.c \
> +	zfs_prop.c \
> +	zfs_zstd.c \
> +	zpool_prop.c \
> +	zprop_common.c \
> +	abd.c \
> +	abd_os.c \
> +	aggsum.c \
> +	arc.c \
> +	arc_os.c \
> ++        blake3_zfs.c \
> +	blkptr.c \
> +	bplist.c \
> +	bpobj.c \
> +	bptree.c \
> +	btree.c \
> +	bqueue.c \
> +	cityhash.c \
> +	dbuf.c \
> +	dbuf_stats.c \
> +	ddt.c \
> +	ddt_zap.c \
> +	dmu.c \
> +	dmu_diff.c \
> +	dmu_object.c \
> +	dmu_objset.c \
> +	dmu_recv.c \
> +	dmu_redact.c \
> +	dmu_send.c \
> +	dmu_traverse.c \
> +	dmu_tx.c \
> +	dmu_zfetch.c \
> +	dnode.c \
> +	dnode_sync.c \
> +	dsl_bookmark.c \
> +	dsl_dataset.c \
> +	dsl_deadlist.c \
> +	dsl_deleg.c \
> +	dsl_dir.c \
> +	dsl_crypt.c \
> +	dsl_pool.c \
> +	dsl_prop.c \
> +	dsl_scan.c \
> +	dsl_synctask.c \
> +	dsl_destroy.c \
> +	dsl_userhold.c \
> +	edonr_zfs.c \
> +	entropy_common.c \
> +	error_private.c \
> +	fm.c \
> +	fse_compress.c \
> +	fse_decompress.c \
> +	gzip.c \
> +	hist.c \
> +	hkdf.c \
> +	huf_compress.c \
> +	huf_decompress.c \
> +	lzjb.c \
> +	lz4.c \
> +	lz4_zfs.c \
> +	metaslab.c \
> +	mmp.c \
> +	multilist.c \
> +	objlist.c \
> +	pathname.c \
> +	pool.c \
> +	range_tree.c \
> +	refcount.c \
> +	rrwlock.c \
> +	sa.c \
> +	sha256.c \
> +	skein_zfs.c \
> +	spa.c \
> +	spa_boot.c \
> +	spa_checkpoint.c \
> +	spa_config.c \
> +	spa_errlog.c \
> +	spa_history.c \
> +	spa_log_spacemap.c \
> +	spa_misc.c \
> +	spa_stats.c \
> +	space_map.c \
> +	space_reftree.c \
> +	txg.c \
> +	trace.c \
> +	uberblock.c \
> +	unique.c \
> +	vdev.c \
> +	vdev_cache.c \
> +	vdev_draid.c \
> +	vdev_draid_rand.c \
> +	vdev_file.c \
> +	vdev_indirect_births.c \
> +	vdev_indirect.c \
> +	vdev_indirect_mapping.c \
> +	vdev_initialize.c \
> +	vdev_label.c \
> +	vdev_mirror.c \
> +	vdev_missing.c \
> +	vdev_queue.c \
> +	vdev_raidz.c \
> +	vdev_raidz_math_aarch64_neon.c \
> +	vdev_raidz_math_aarch64_neonx2.c \
> +	vdev_raidz_math_avx2.c \
> +	vdev_raidz_math_avx512bw.c \
> +	vdev_raidz_math_avx512f.c \
> +	vdev_raidz_math.c \
> +	vdev_raidz_math_scalar.c \
> +	vdev_rebuild.c \
> +	vdev_removal.c \
> +	vdev_root.c \
> +	vdev_trim.c \
> +	xxhash.c \
> +	zap.c \
> +	zap_leaf.c \
> +	zap_micro.c \
> +	zcp.c \
> +	zcp_get.c \
> +	zcp_global.c \
> +	zcp_iter.c \
> +	zcp_set.c \
> +	zcp_synctask.c \
> +	zfeature.c \
> +	zfs_byteswap.c \
> ++        zfs_chksum.c \
> +	zfs_debug.c \
> +	zfs_fm.c \
> +	zfs_fuid.c \
> +	zfs_sa.c \
> +	zfs_znode.c \
> +	zfs_racct.c \
> +	zfs_ratelimit.c \
> +	zfs_rlock.c \
> +	zil.c \
> +	zio.c \
> +	zio_checksum.c \
> +	zio_compress.c \
> +	zio_crypt.c \
> +	zio_inject.c \
> +	zle.c \
> +	zrlock.c \
> +	zstd_common.c \
> +	zstd_compress.c \
> +	zstd_compress_literals.c \
> +	zstd_compress_sequences.c \
> +	zstd_compress_superblock.c \
> +	zstd_ddict.c \
> +	zstd_decompress.c \
> +	zstd_decompress_block.c \
> +	zstd_double_fast.c \
> +	zstd_fast.c \
> +	zstd_lazy.c \
> +	zstd_ldm.c \
> +	zstd_opt.c \
> +	zthr.c
> +
> +ARCH_C =
> +.if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "i386"
> +ARCH_C += 	vdev_raidz_math_sse2.c \
> +		vdev_raidz_math_ssse3.c \
> +		zfs_fletcher_intel.c \
> +		zfs_fletcher_sse.c 
> +CFLAGS +=  -DHAVE_SSE2 	-DHAVE_SSE3
> +.endif
> +.if ${MACHINE_ARCH} == "amd64"
> +ARCH_C +=	zfs_fletcher_avx512.c
> +CFLAGS+= -DHAVE_AVX2 -DHAVE_AVX -D__x86_64 -DHAVE_AVX512F \
> +	-DHAVE_AVX512BW
> +.endif
> +.if ${MACHINE_CPUARCH} == "aarch64"
> +ARCH_C +=	zfs_fletcher_aarch64_neon.c
> +.endif
> +
> +LUA_C = \
> +	lapi.c \
> +	lauxlib.c \
> +	lbaselib.c \
> +	lcode.c \
> +	lcompat.c \
> +	lcorolib.c \
> +	lctype.c \
> +	ldebug.c \
> +	ldo.c \
> +	lfunc.c \
> +	lgc.c \
> +	llex.c \
> +	lmem.c \
> +	lobject.c \
> +	lopcodes.c \
> +	lparser.c \
> +	lstate.c \
> +	lstring.c \
> +	lstrlib.c \
> +	ltable.c \
> +	ltablib.c \
> +	ltm.c \
> +	lvm.c \
> +	lzio.c
> +
> +UNICODE_C = u8_textprep.c uconv.c
> +
> +SRCS=		${USER_C} ${KERNEL_C} ${LUA_C} ${UNICODE_C} ${ARCH_C}
> +
> +WARNS?=		2
> +CFLAGS+= \
> +	-DIN_BASE \
> +	-I${ZFSTOP}/include \
> +	-I${ZFSTOP}/lib/libspl/include \
> +	-I${ZFSTOP}/lib/libspl/include/os/freebsd \
> +	-I${SRCTOP}/sys \
> +	-I${ZFSTOP}/include/os/freebsd/zfs \
> +	-I${SRCTOP}/cddl/compat/opensolaris/include \
> +	-I${ZFSTOP}/module/icp/include \
> +	-include ${ZFSTOP}/include/os/freebsd/spl/sys/ccompile.h \
> +	-DHAVE_ISSETUGID \
> +	-include ${SRCTOP}/sys/modules/zfs/zfs_config.h \
> +	-I${SRCTOP}/sys/modules/zfs \
> +	-I${ZFSTOP}/include/os/freebsd/zfs \
> +	-DLIB_ZPOOL_BUILD -DZFS_DEBUG \
> +
> +# XXX: pthread doesn't have mutex_owned() equivalent, so we need to look
> +#      into libthr private structures. That's sooo evil, but it's only for
> +#      ZFS debugging tools needs.
> +CFLAGS+=	-DWANTS_MUTEX_OWNED
> +CFLAGS+=	-I${SRCTOP}/lib/libpthread/thread
> +CFLAGS+=	-I${SRCTOP}/lib/libpthread/sys
> +CFLAGS+=	-I${SRCTOP}/lib/libthr/arch/${MACHINE_CPUARCH}/include
> +CFLAGS.gcc+=	-fms-extensions
> +
> +LIBADD=		md pthread z spl icp nvpair avl umem
> +
> +# atomic.S doesn't like profiling.
> +MK_PROFILE=	no
> +
> +CSTD=	c99
> +
> +# Since there are many asserts in this library, it makes no sense to compile
> +# it without debugging.
> +
> +CFLAGS+=	-g -DDEBUG=1
> +
> +CFLAGS.entropy_common.c=	-fno-tree-vectorize
> +CFLAGS.entropy_common.c+=	${NO_WBITWISE_INSTEAD_OF_LOGICAL}
> +CFLAGS.error_private.c=		-fno-tree-vectorize
> +CFLAGS.error_private.c+=	${NO_WBITWISE_INSTEAD_OF_LOGICAL}
> +CFLAGS.fse_compress.c=		-fno-tree-vectorize
> +CFLAGS.fse_compress.c+=		${NO_WBITWISE_INSTEAD_OF_LOGICAL}
> +CFLAGS.fse_decompress.c=	-fno-tree-vectorize
> +CFLAGS.fse_decompress.c+=	${NO_WBITWISE_INSTEAD_OF_LOGICAL}
> +CFLAGS.hist.c=			-fno-tree-vectorize
> +CFLAGS.hist.c+=			${NO_WBITWISE_INSTEAD_OF_LOGICAL}
> +CFLAGS.huf_compress.c=		-fno-tree-vectorize
> +CFLAGS.huf_compress.c+=		${NO_WBITWISE_INSTEAD_OF_LOGICAL}
> +CFLAGS.huf_decompress.c=	-fno-tree-vectorize
> +CFLAGS.huf_decompress.c+=	${NO_WBITWISE_INSTEAD_OF_LOGICAL}
> +CFLAGS.pool.c=			-fno-tree-vectorize
> +CFLAGS.pool.c+=			${NO_WBITWISE_INSTEAD_OF_LOGICAL}
> +CFLAGS.xxhash.c=		-fno-tree-vectorize
> +CFLAGS.xxhash.c+=		${NO_WBITWISE_INSTEAD_OF_LOGICAL}
> +CFLAGS.zstd_compress.c=		-fno-tree-vectorize
> +CFLAGS.zstd_compress.c+=	${NO_WBITWISE_INSTEAD_OF_LOGICAL}
> +CFLAGS.zstd_compress_literals.c=	-fno-tree-vectorize
> +CFLAGS.zstd_compress_literals.c+=	${NO_WBITWISE_INSTEAD_OF_LOGICAL}
> +CFLAGS.zstd_compress_sequences.c=	-fno-tree-vectorize
> +CFLAGS.zstd_compress_sequences.c+=	${NO_WBITWISE_INSTEAD_OF_LOGICAL}
> +CFLAGS.zstd_compress_superblock.c=	-fno-tree-vectorize
> +CFLAGS.zstd_compress_superblock.c+=	${NO_WBITWISE_INSTEAD_OF_LOGICAL}
> +CFLAGS.zstd_double_fast.c=	-fno-tree-vectorize
> +CFLAGS.zstd_double_fast.c+=	${NO_WBITWISE_INSTEAD_OF_LOGICAL}
> +CFLAGS.zstd_fast.c=		-fno-tree-vectorize
> +CFLAGS.zstd_fast.c+=		${NO_WBITWISE_INSTEAD_OF_LOGICAL}
> +CFLAGS.zstd_lazy.c=		-fno-tree-vectorize
> +CFLAGS.zstd_lazy.c+=		${NO_WBITWISE_INSTEAD_OF_LOGICAL}
> +CFLAGS.zstd_ldm.c=		-fno-tree-vectorize
> +CFLAGS.zstd_ldm.c+=		${NO_WBITWISE_INSTEAD_OF_LOGICAL}
> +CFLAGS.zstd_opt.c=		-fno-tree-vectorize
> +CFLAGS.zstd_opt.c+=		${NO_WBITWISE_INSTEAD_OF_LOGICAL}
> +CFLAGS.zstd_ddict.c=		-fno-tree-vectorize
> +CFLAGS.zstd_ddict.c+=		${NO_WBITWISE_INSTEAD_OF_LOGICAL}
> +CFLAGS.zstd_decompress.c=	-fno-tree-vectorize
> +CFLAGS.zstd_decompress.c+=	${NO_WBITWISE_INSTEAD_OF_LOGICAL}
> +CFLAGS.zstd_decompress_block.c=	-fno-tree-vectorize
> +CFLAGS.zstd_decompress_block.c+=	${NO_WBITWISE_INSTEAD_OF_LOGICAL}
> +
> +.include <bsd.lib.mk>
> diff --cc sys/contrib/openzfs/config/kernel-user-ns-inum.m4
> index 000000000000,2207a4aa6921..2207a4aa6921
> mode 000000,100644..100644
> --- a/sys/contrib/openzfs/config/kernel-user-ns-inum.m4
> +++ b/sys/contrib/openzfs/config/kernel-user-ns-inum.m4
> diff --cc sys/contrib/openzfs/etc/systemd/system/zfs-trim-monthly@.timer.in
> index 000000000000,8c13ffb304b3..8c13ffb304b3
> mode 000000,100644..100644
> --- a/sys/contrib/openzfs/etc/systemd/system/zfs-trim-monthly@.timer.in
> +++ b/sys/contrib/openzfs/etc/systemd/system/zfs-trim-monthly@.timer.in
> diff --cc sys/contrib/openzfs/etc/systemd/system/zfs-trim-weekly@.timer.in
> index 000000000000,dced3d88b5c9..dced3d88b5c9
> mode 000000,100644..100644
> --- a/sys/contrib/openzfs/etc/systemd/system/zfs-trim-weekly@.timer.in
> +++ b/sys/contrib/openzfs/etc/systemd/system/zfs-trim-weekly@.timer.in
> diff --cc sys/contrib/openzfs/etc/systemd/system/zfs-trim@.service.in
> index 000000000000,423fb448c16f..423fb448c16f
> mode 000000,100644..100644
> --- a/sys/contrib/openzfs/etc/systemd/system/zfs-trim@.service.in
> +++ b/sys/contrib/openzfs/etc/systemd/system/zfs-trim@.service.in
> diff --cc sys/contrib/openzfs/include/sys/blake3.h
> index 000000000000,b3391c5f2349..b3391c5f2349
> mode 000000,100644..100644
> --- a/sys/contrib/openzfs/include/sys/blake3.h
> +++ b/sys/contrib/openzfs/include/sys/blake3.h
> diff --cc sys/contrib/openzfs/include/sys/zfs_chksum.h
> index 000000000000,cfd07bd0ffe7..cfd07bd0ffe7
> mode 000000,100644..100644
> --- a/sys/contrib/openzfs/include/sys/zfs_chksum.h
> +++ b/sys/contrib/openzfs/include/sys/zfs_chksum.h
> diff --cc sys/contrib/openzfs/man/man8/zfs-unzone.8
> index 000000000000,9052b28aa880..9052b28aa880
> mode 000000,120000..120000
> --- a/sys/contrib/openzfs/man/man8/zfs-unzone.8
> +++ b/sys/contrib/openzfs/man/man8/zfs-unzone.8
> diff --cc sys/contrib/openzfs/man/man8/zfs-zone.8
> index 000000000000,2f975dde6799..2f975dde6799
> mode 000000,100644..100644
> --- a/sys/contrib/openzfs/man/man8/zfs-zone.8
> +++ b/sys/contrib/openzfs/man/man8/zfs-zone.8
> diff --cc sys/contrib/openzfs/module/icp/algs/blake3/blake3.c
> index 000000000000,8c9c06eb9d9f..8c9c06eb9d9f
> mode 000000,100644..100644
> --- a/sys/contrib/openzfs/module/icp/algs/blake3/blake3.c
> +++ b/sys/contrib/openzfs/module/icp/algs/blake3/blake3.c
> diff --cc sys/contrib/openzfs/module/icp/algs/blake3/blake3_generic.c
> index 000000000000,6ff9a845ccdc..6ff9a845ccdc
> mode 000000,100644..100644
> --- a/sys/contrib/openzfs/module/icp/algs/blake3/blake3_generic.c
> +++ b/sys/contrib/openzfs/module/icp/algs/blake3/blake3_generic.c
> diff --cc sys/contrib/openzfs/module/icp/algs/blake3/blake3_impl.c
> index 000000000000,c3809a2827be..c3809a2827be
> mode 000000,100644..100644
> --- a/sys/contrib/openzfs/module/icp/algs/blake3/blake3_impl.c
> +++ b/sys/contrib/openzfs/module/icp/algs/blake3/blake3_impl.c
> diff --cc sys/contrib/openzfs/module/icp/algs/blake3/blake3_impl.h
> index 000000000000,7b40cc4d3f02..7b40cc4d3f02
> mode 000000,100644..100644
> --- a/sys/contrib/openzfs/module/icp/algs/blake3/blake3_impl.h
> +++ b/sys/contrib/openzfs/module/icp/algs/blake3/blake3_impl.h
> diff --cc sys/contrib/openzfs/module/icp/algs/blake3/blake3_x86-64.c
> index 000000000000,48715e2128d2..48715e2128d2
> mode 000000,100644..100644
> --- a/sys/contrib/openzfs/module/icp/algs/blake3/blake3_x86-64.c
> +++ b/sys/contrib/openzfs/module/icp/algs/blake3/blake3_x86-64.c
> diff --cc sys/contrib/openzfs/module/icp/asm-aarch64/blake3/b3_aarch64_sse2.S
> index 000000000000,59a4d9afd437..59a4d9afd437
> mode 000000,100644..100644
> --- a/sys/contrib/openzfs/module/icp/asm-aarch64/blake3/b3_aarch64_sse2.S
> +++ b/sys/contrib/openzfs/module/icp/asm-aarch64/blake3/b3_aarch64_sse2.S
> diff --cc sys/contrib/openzfs/module/icp/asm-aarch64/blake3/b3_aarch64_sse41.S
> index 000000000000,eb6946400b8a..eb6946400b8a
> mode 000000,100644..100644
> --- a/sys/contrib/openzfs/module/icp/asm-aarch64/blake3/b3_aarch64_sse41.S
> +++ b/sys/contrib/openzfs/module/icp/asm-aarch64/blake3/b3_aarch64_sse41.S
> diff --cc sys/contrib/openzfs/module/icp/asm-ppc64/blake3/b3_ppc64le_sse2.S
> index 000000000000,9deba202fde8..9deba202fde8
> mode 000000,100644..100644
> --- a/sys/contrib/openzfs/module/icp/asm-ppc64/blake3/b3_ppc64le_sse2.S
> +++ b/sys/contrib/openzfs/module/icp/asm-ppc64/blake3/b3_ppc64le_sse2.S
> diff --cc sys/contrib/openzfs/module/icp/asm-ppc64/blake3/b3_ppc64le_sse41.S
> index 000000000000,a8b2627f12b0..a8b2627f12b0
> mode 000000,100644..100644
> --- a/sys/contrib/openzfs/module/icp/asm-ppc64/blake3/b3_ppc64le_sse41.S
> +++ b/sys/contrib/openzfs/module/icp/asm-ppc64/blake3/b3_ppc64le_sse41.S
> diff --cc sys/contrib/openzfs/module/icp/asm-x86_64/blake3/blake3_avx2.S
> index 000000000000,b15d8fc7744e..b15d8fc7744e
> mode 000000,100644..100644
> --- a/sys/contrib/openzfs/module/icp/asm-x86_64/blake3/blake3_avx2.S
> +++ b/sys/contrib/openzfs/module/icp/asm-x86_64/blake3/blake3_avx2.S
> diff --cc sys/contrib/openzfs/module/icp/asm-x86_64/blake3/blake3_avx512.S
> index 000000000000,d02c5e7ec92f..d02c5e7ec92f
> mode 000000,100644..100644
> --- a/sys/contrib/openzfs/module/icp/asm-x86_64/blake3/blake3_avx512.S
> +++ b/sys/contrib/openzfs/module/icp/asm-x86_64/blake3/blake3_avx512.S
> diff --cc sys/contrib/openzfs/module/icp/asm-x86_64/blake3/blake3_sse2.S
> index 000000000000,39d23ee233df..39d23ee233df
> mode 000000,100644..100644
> --- a/sys/contrib/openzfs/module/icp/asm-x86_64/blake3/blake3_sse2.S
> +++ b/sys/contrib/openzfs/module/icp/asm-x86_64/blake3/blake3_sse2.S
> diff --cc sys/contrib/openzfs/module/icp/asm-x86_64/blake3/blake3_sse41.S
> index 000000000000,1c40236f0628..1c40236f0628
> mode 000000,100644..100644
> --- a/sys/contrib/openzfs/module/icp/asm-x86_64/blake3/blake3_sse41.S
> +++ b/sys/contrib/openzfs/module/icp/asm-x86_64/blake3/blake3_sse41.S
> diff --cc sys/contrib/openzfs/module/os/linux/spl/spl-zone.c
> index 000000000000,b8a8b7cd8cd8..b8a8b7cd8cd8
> mode 000000,100644..100644
> --- a/sys/contrib/openzfs/module/os/linux/spl/spl-zone.c
> +++ b/sys/contrib/openzfs/module/os/linux/spl/spl-zone.c
> diff --cc sys/contrib/openzfs/module/zfs/blake3_zfs.c
> index 000000000000,7560f30fd4e4..7560f30fd4e4
> mode 000000,100644..100644
> --- a/sys/contrib/openzfs/module/zfs/blake3_zfs.c
> +++ b/sys/contrib/openzfs/module/zfs/blake3_zfs.c
> diff --cc sys/contrib/openzfs/module/zfs/zfs_chksum.c
> index 000000000000,639784287d72..639784287d72
> mode 000000,100644..100644
> --- a/sys/contrib/openzfs/module/zfs/zfs_chksum.c
> +++ b/sys/contrib/openzfs/module/zfs/zfs_chksum.c
> diff --cc sys/contrib/openzfs/tests/zfs-tests/cmd/checksum/blake3_test.c
> index 000000000000,55d268f5f8b7..55d268f5f8b7
> mode 000000,100644..100644
> --- a/sys/contrib/openzfs/tests/zfs-tests/cmd/checksum/blake3_test.c
> +++ b/sys/contrib/openzfs/tests/zfs-tests/cmd/checksum/blake3_test.c
> diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/checksum/run_blake3_test.ksh
> index 000000000000,cf1ca70328e1..cf1ca70328e1
> mode 000000,100755..100755
> --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/checksum/run_blake3_test.ksh
> +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/checksum/run_blake3_test.ksh
> diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/user_namespace/user_namespace_002.ksh
> index 000000000000,a5f76014ab85..a5f76014ab85
> mode 000000,100755..100755
> --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/user_namespace/user_namespace_002.ksh
> +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/user_namespace/user_namespace_002.ksh
> diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/user_namespace/user_namespace_003.ksh
> index 000000000000,20a7f6677d20..20a7f6677d20
> mode 000000,100755..100755
> --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/user_namespace/user_namespace_003.ksh
> +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/user_namespace/user_namespace_003.ksh
> diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/user_namespace/user_namespace_004.ksh
> index 000000000000,6edb0413c98a..6edb0413c98a
> mode 000000,100755..100755
> --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/user_namespace/user_namespace_004.ksh
> +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/user_namespace/user_namespace_004.ksh
> diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/zvol/zvol_misc/zvol_misc_fua.ksh
> index 000000000000,e44107030f3c..e44107030f3c
> mode 000000,100755..100755
> --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/zvol/zvol_misc/zvol_misc_fua.ksh
> +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/zvol/zvol_misc/zvol_misc_fua.ksh
> diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/zvol/zvol_misc/zvol_misc_trim.ksh
> index 000000000000,2e417a0e6676..2e417a0e6676
> mode 000000,100755..100755
> --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/zvol/zvol_misc/zvol_misc_trim.ksh
> +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/zvol/zvol_misc/zvol_misc_trim.ksh
> diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/zvol/zvol_stress/cleanup.ksh
> index 000000000000,b81a372638e3..b81a372638e3
> mode 000000,100755..100755
> --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/zvol/zvol_stress/cleanup.ksh
> +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/zvol/zvol_stress/cleanup.ksh
> diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/zvol/zvol_stress/setup.ksh
> index 000000000000,9e70fc47b89b..9e70fc47b89b
> mode 000000,100755..100755
> --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/zvol/zvol_stress/setup.ksh
> +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/zvol/zvol_stress/setup.ksh
> diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/zvol/zvol_stress/zvol_stress.ksh
> index 000000000000,c1aadcac3bf5..c1aadcac3bf5
> mode 000000,100755..100755
> --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/zvol/zvol_stress/zvol_stress.ksh
> +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/zvol/zvol_stress/zvol_stress.ksh
> diff --cc sys/modules/zfs/Makefile
> index 510511a3e118,000000000000..1a6912fb8ebd
> mode 100644,000000..100644
> --- a/sys/modules/zfs/Makefile
> +++ b/sys/modules/zfs/Makefile
> @@@ -1,446 -1,0 +1,474 @@@
> +# $FreeBSD$
> +
> +SRCDIR=${SRCTOP}/sys/contrib/openzfs/module
> +INCDIR=${SRCTOP}/sys/contrib/openzfs/include
> +
> +KMOD=	zfs
> +
> +.PATH:	${SRCDIR}/avl \
> +	${SRCDIR}/lua \
> +	${SRCDIR}/nvpair \
> ++        ${SRCDIR}/icp/algs/blake3 \
> ++        ${SRCDIR}/icp/asm-aarch64/blake3 \
> ++        ${SRCDIR}/icp/asm-ppc64/blake3 \
> ++        ${SRCDIR}/icp/asm-x86_64/blake3 \
> +	${SRCDIR}/icp/algs/edonr \
> +	${SRCDIR}/os/freebsd/spl \
> +	${SRCDIR}/os/freebsd/zfs \
> +	${SRCDIR}/unicode \
> +	${SRCDIR}/zcommon \
> +	${SRCDIR}/zfs	\
> +	${SRCDIR}/zstd	\
> +	${SRCDIR}/zstd/lib/common \
> +	${SRCDIR}/zstd/lib/compress \
> +	${SRCDIR}/zstd/lib/decompress
> +
> +
> +CFLAGS+= -I${INCDIR}
> +CFLAGS+= -I${INCDIR}/os/freebsd
> +CFLAGS+= -I${INCDIR}/os/freebsd/spl
> +CFLAGS+= -I${INCDIR}/os/freebsd/zfs
> +CFLAGS+= -I${SRCDIR}/zstd/include
> ++CFLAGS+= -I${SRCDIR}/icp/include
> +CFLAGS+= -I${.CURDIR}
> +
> +CFLAGS+= -D__KERNEL__ -DFREEBSD_NAMECACHE -DBUILDING_ZFS \
> +	-DHAVE_UIO_ZEROCOPY -DWITHOUT_NETDUMP -D__KERNEL -D_SYS_CONDVAR_H_ \
> +	-D_SYS_VMEM_H_ -DIN_FREEBSD_BASE
> +
> +.if ${MACHINE_ARCH} == "amd64"
> - CFLAGS+= -DHAVE_AVX2 -DHAVE_AVX -D__x86_64 -DHAVE_SSE2 -DHAVE_AVX512F -DHAVE_AVX512BW -DHAVE_SSSE3
> ++CFLAGS+= -D__x86_64 -DHAVE_SSE2 -DHAVE_SSSE3 -DHAVE_SSE4_1 -DHAVE_SSE4_2 \
> ++	-DHAVE_AVX -DHAVE_AVX2 -DHAVE_AVX512F -DHAVE_AVX512VL -DHAVE_AVX512BW
> +.endif
> +
> +.if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "powerpc" || \
> +	${MACHINE_ARCH} == "powerpcspe" || ${MACHINE_ARCH} == "arm"
> +CFLAGS+= -DBITS_PER_LONG=32
> +.else
> +CFLAGS+= -DBITS_PER_LONG=64
> +.endif
> +
> +SRCS=	vnode_if.h device_if.h bus_if.h
> +
> +# avl
> +SRCS+=	avl.c
> +
> +# icp
> +SRCS+=	edonr.c
> +
> ++#icp/algs/blake3
> ++SRCS+=	blake3.c \
> ++	blake3_generic.c \
> ++	blake3_impl.c \
> ++	blake3_x86-64.c
> ++
> ++#icp/asm-aarch64/blake3
> ++SRCS+=	b3_aarch64_sse2.S \
> ++	b3_aarch64_sse41.S
> ++
> ++#icp/asm-ppc64/blake3
> ++SRCS+=	b3_ppc64le_sse2.S \
> ++	b3_ppc64le_sse41.S
> ++
> *** 1384 LINES SKIPPED ***
>