mirror_zfs/cmd
Alexander Motin fd6e8c1d2a BRT: Rework structures and locks to be per-vdev
While block cloning operation from the beginning was made per-vdev,
before this change most of its data were protected by two pool-
wide locks.  It created lots of lock contention in many workload.

This change makes most of block cloning data structures per-vdev,
which allows to lock them separately.  The only pool-wide lock now
it spa_brt_lock, protecting array of per-vdev pointers and in most
cases taken as reader.  Also this splits per-vdev locks into three
different ones: bv_pending_lock protects the AVL-tree of pending
operations in open context, bv_mos_entries_lock protects BRT ZAP
object from while being prefetched, and bv_lock protects the rest
of per-vdev context during TXG commit process.  There should be
no functional difference aside of some optimizations.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Pawel Jakub Dawidek <pjd@FreeBSD.org>
Reviewed-by: Brian Atkinson <batkinson@lanl.gov>
Signed-off-by: Alexander Motin <mav@FreeBSD.org>
Sponsored by: iXsystems, Inc.
Closes #16740
2024-11-15 15:04:11 -08:00
..
raidz_test build: rename FORCEDEBUG_CPPFLAGS to LIBZPOOL_CPPFLAGS 2024-08-27 12:53:27 -07:00
zdb BRT: Rework structures and locks to be per-vdev 2024-11-15 15:04:11 -08:00
zed Verify parent_dev before calling udev_device_get_sysattr_value 2024-11-04 16:44:38 -08:00
zfs JSON: fix user properties output for zfs list 2024-11-07 11:31:14 -08:00
zinject Parallel pool import 2024-04-22 09:42:38 -07:00
zpool JSON: fix user properties output for zpool list 2024-11-11 09:46:19 -08:00
zpool_influxdb Do not report bytes skipped by scan as issued. 2023-06-30 08:47:13 -07:00
zstream zio_compress: introduce max size threshold 2024-09-19 17:23:58 -07:00
arc_summary arcstat: add structural, types, states breakdown 2024-09-18 11:44:18 -07:00
arcstat.in arcstat: add structural, types, states breakdown 2024-09-18 11:44:18 -07:00
dbufstat.in Consider dnode_t allocations in dbuf cache size accounting 2023-11-17 13:25:53 -08:00
fsck.zfs.in cmd: move single-file binaries up, extract udev programs to udev/ 2022-05-10 10:20:34 -07:00
Makefile.am build: rename FORCEDEBUG_CPPFLAGS to LIBZPOOL_CPPFLAGS 2024-08-27 12:53:27 -07:00
mount_zfs.c Make mount.zfs(8) calling zfs_mount_at for legacy mounts as well 2024-08-23 10:39:09 -07:00
zfs_ids_to_path.c Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
zgenhostid.c Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
zhack.c Support for longnames for files/directories (Linux part) 2024-10-01 13:40:27 -07:00
zilstat.in zil: add stats for commit failure/fallback (#16315) 2024-07-25 16:53:59 -07:00
ztest.c ztest: Fix scrub check in ztest_raidz_expand_check() 2024-10-08 20:41:17 -07:00
zvol_wait zvol_wait logic may terminate prematurely 2022-10-11 12:12:04 -07:00