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
..
2024-09-14 13:47:59 -07:00
2022-03-15 15:13:42 -07:00
2024-11-13 07:31:50 -08:00
2023-05-01 17:21:27 -07:00
2024-08-22 16:22:24 -07:00
2023-06-09 10:12:52 -07:00
2024-03-25 15:01:54 -07:00
2022-07-11 14:16:13 -07:00
2023-01-10 13:39:22 -08:00
2024-11-15 15:04:11 -08:00
2024-05-10 08:47:21 -07:00
2024-09-14 13:47:59 -07:00
2023-11-17 13:25:53 -08:00
2024-11-15 15:03:57 -08:00
2024-09-04 14:17:02 -07:00
2024-08-16 12:03:35 -07:00
2024-10-01 13:39:08 -07:00
2024-09-10 12:46:50 -07:00
2024-05-29 10:49:11 -07:00
2024-11-04 16:42:06 -08:00
2024-05-10 08:47:21 -07:00
2024-10-01 13:39:08 -07:00
2024-10-02 20:47:11 -07:00
2024-10-01 13:39:08 -07:00
2024-11-06 11:52:01 -08:00
2024-03-25 15:01:54 -07:00
2024-10-30 20:11:40 -04:00
2024-04-09 16:14:04 -07:00
2024-11-04 16:42:06 -08:00
2024-11-04 16:42:06 -08:00
2024-07-30 11:40:47 -07:00
2024-10-01 13:39:08 -07:00
2024-10-01 13:39:08 -07:00
2024-11-13 07:38:42 -08:00
2024-10-01 13:39:08 -07:00
2024-10-01 13:39:08 -07:00
2024-10-01 13:39:08 -07:00
2024-10-01 13:40:27 -07:00
2024-10-01 13:39:08 -07:00
2024-10-02 09:12:02 -07:00
2024-10-04 10:41:17 -07:00
2022-07-11 14:16:13 -07:00
2024-10-01 13:39:08 -07:00
2023-03-14 15:59:58 -07:00
2023-06-09 10:12:52 -07:00
2024-08-22 16:22:24 -07:00
2022-03-15 15:13:42 -07:00
2024-08-22 16:22:24 -07:00
2022-01-12 16:14:36 -08:00
2024-08-22 16:22:24 -07:00
2024-09-17 13:15:42 -07:00
2024-04-29 14:35:53 -07:00
2024-04-09 16:23:19 -07:00
2019-06-19 09:48:12 -07:00
2022-07-11 14:16:13 -07:00
2023-05-26 10:03:12 -07:00
2023-06-14 08:02:27 -07:00
2022-07-11 14:16:13 -07:00
2024-10-01 13:39:08 -07:00
2023-03-02 13:52:21 -08:00
2022-03-15 15:13:42 -07:00
2023-11-08 10:19:41 -08:00
2023-10-26 09:17:40 -07:00
2024-10-01 13:39:08 -07:00
2023-03-14 15:25:50 -07:00
2024-10-01 13:39:08 -07:00
2024-11-15 15:04:11 -08:00
2024-09-14 13:47:59 -07:00
2024-10-01 13:39:08 -07:00
2022-07-11 14:16:13 -07:00
2022-07-11 14:16:13 -07:00
2018-06-06 09:35:59 -07:00
2018-06-06 09:35:59 -07:00
2024-04-29 14:35:53 -07:00
2024-03-25 15:01:54 -07:00
2022-07-11 14:16:13 -07:00
2020-11-13 13:51:51 -08:00
2024-10-09 12:28:08 -07:00
2022-03-15 15:13:42 -07:00
2022-03-15 15:13:42 -07:00
2024-10-09 12:28:08 -07:00
2024-05-14 08:57:41 -07:00
2024-09-14 13:47:59 -07:00
2024-10-09 12:28:08 -07:00
2022-07-11 14:16:13 -07:00
2023-11-07 09:06:14 -08:00
2022-07-11 14:16:13 -07:00
2022-07-11 14:16:13 -07:00
2022-11-30 13:46:26 -08:00
2022-07-11 14:16:13 -07:00
2022-07-11 14:16:13 -07:00
2022-07-11 14:16:13 -07:00
2023-10-30 14:54:27 -07:00
2023-01-13 10:58:58 -08:00
2022-07-11 14:16:13 -07:00
2022-07-11 14:16:13 -07:00
2022-07-11 14:16:13 -07:00
2022-07-11 14:16:13 -07:00
2023-04-06 10:35:02 -07:00
2024-10-09 12:28:08 -07:00
2024-05-14 08:57:41 -07:00
2023-03-14 15:25:50 -07:00
2022-07-11 14:16:13 -07:00
2024-05-14 08:57:41 -07:00
2024-10-29 15:23:24 -04:00
2024-03-21 16:43:53 -07:00
2024-11-15 15:04:02 -08:00
2024-10-01 13:40:27 -07:00
2023-03-14 15:25:50 -07:00
2018-02-08 15:29:24 -08:00
2024-10-01 13:39:08 -07:00
2020-02-14 13:41:42 -08:00
2022-09-02 13:31:19 -07:00
2024-05-29 10:49:11 -07:00
2024-10-01 13:39:08 -07:00
2022-07-11 14:16:13 -07:00
2023-03-02 13:52:21 -08:00
2024-09-14 13:47:59 -07:00
2023-06-09 10:12:52 -07:00
2023-03-02 13:52:21 -08:00
2024-10-01 13:40:27 -07:00
2024-09-27 09:18:11 -07:00
2023-06-09 10:12:52 -07:00
2024-10-01 13:39:08 -07:00
2022-07-11 14:16:13 -07:00
2024-09-27 09:18:11 -07:00
2022-07-11 14:16:13 -07:00
2022-07-11 14:16:13 -07:00
2024-11-01 14:43:25 -07:00
2024-10-01 13:40:27 -07:00
2024-07-31 17:17:04 -07:00
2024-03-25 15:01:54 -07:00
2024-09-19 17:23:58 -07:00
2024-04-29 14:35:53 -07:00
2024-10-31 17:00:53 -07:00
2024-08-22 16:22:24 -07:00
2022-11-29 09:26:03 -08:00
2022-03-23 08:51:00 -07:00
2024-10-01 13:39:08 -07:00