mirror_zfs/module/os/freebsd/zfs
Fedor Uporov 1a8f5ad3b0
zvol: Enable zvol threading functionality on FreeBSD
Make zvol I/O requests processing asynchronous on FreeBSD side in some
cases. Clone zvol threading logic and required module parameters from
Linux side. Make zvol threadpool creation/destruction logic shared for
both Linux and FreeBSD.
The IO requests are processed asynchronously in next cases:
- volmode=geom: if IO request thread is geom thread or cannot sleep.
- volmode=cdev: if IO request passed thru struct cdevsw .d_strategy
routine, mean is AIO request.
In all other cases the IO requests are processed synchronously. The
volthreading zvol property is ignored on FreeBSD side.

Sponsored-by: vStack, Inc.
Reviewed-by: Alexander Motin <mav@FreeBSD.org>
Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Reviewed-by: @ImAwsumm
Signed-off-by: Fedor Uporov <fuporov.vstack@gmail.com>
Closes #17169
2025-05-08 15:25:40 -04:00
..
abd_os.c SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
arc_os.c SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
crypto_os.c SPDX: license tags: BSD-2-Clause 2025-03-13 17:56:46 -07:00
dmu_os.c SPDX: license tags: BSD-2-Clause 2025-03-13 17:56:46 -07:00
event_os.c FreeBSD: remove support for FreeBSD < 13.0-RELEASE (#16372) 2024-08-05 16:56:45 -07:00
hkdf.c SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
kmod_core.c SPDX: license tags: BSD-2-Clause 2025-03-13 17:56:46 -07:00
spa_os.c SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
sysctl_os.c SPDX: license tags: BSD-2-Clause 2025-03-13 17:56:46 -07:00
vdev_geom.c Implement allocation size ranges and use for gang leaves (#17111) 2025-05-02 15:32:18 -07:00
vdev_label_os.c SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
zfs_acl.c dmu_tx: rename dmu_tx_assign() flags from TXG_* to DMU_TX_* (#17143) 2025-03-18 16:04:22 -07:00
zfs_ctldir.c SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
zfs_debug.c SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
zfs_dir.c dmu_tx: rename dmu_tx_assign() flags from TXG_* to DMU_TX_* (#17143) 2025-03-18 16:04:22 -07:00
zfs_file_os.c SPDX: license tags: BSD-2-Clause 2025-03-13 17:56:46 -07:00
zfs_ioctl_compat.c SPDX: license tags: BSD-2-Clause 2025-03-13 17:56:46 -07:00
zfs_ioctl_os.c SPDX: license tags: BSD-2-Clause 2025-03-13 17:56:46 -07:00
zfs_racct.c SPDX: license tags: BSD-2-Clause 2025-03-13 17:56:46 -07:00
zfs_vfsops.c Report default quotas via kernel interfaces 2025-04-03 10:36:38 -07:00
zfs_vnops_os.c dmu_tx: rename dmu_tx_assign() flags from TXG_* to DMU_TX_* (#17143) 2025-03-18 16:04:22 -07:00
zfs_znode_os.c FreeBSD: Use new SYSCTL_SIZEOF() 2025-05-08 10:31:43 -04:00
zio_crypt.c SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
zvol_os.c zvol: Enable zvol threading functionality on FreeBSD 2025-05-08 15:25:40 -04:00