Alexander Motin
19bf54b764
ZAP: Massively switch to _by_dnode() interfaces
...
Before this change ZAP called dnode_hold() for almost every block
access, that was clearly visible in profiler under heavy load, such
as BRT. This patch makes it always hold the dnode reference between
zap_lockdir() and zap_unlockdir(). It allows to avoid most of dnode
operations between those. It also adds several new _by_dnode() APIs
to ZAP and uses them in BRT code. Also adds dmu_prefetch_by_dnode()
variant and uses it in the ZAP code.
After this there remains only one call to dmu_buf_dnode_enter(),
which seems to be unneeded. So remove the call and the functions.
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov >
Signed-off-by: Alexander Motin <mav@FreeBSD.org >
Sponsored by: iXsystems, Inc.
Closes #15951
2024-04-19 10:13:38 -07:00
..
2024-03-28 13:29:46 -07:00
2022-03-15 15:13:42 -07:00
2024-01-08 16:11:39 -08:00
2023-05-01 17:21:27 -07:00
2022-03-15 15:13:42 -07:00
2023-06-09 10:12:52 -07:00
2023-07-21 16:35:12 -07:00
2022-07-11 14:16:13 -07:00
2023-01-10 13:39:22 -08:00
2024-04-19 10:13:38 -07:00
2023-05-26 10:03:12 -07:00
2024-01-08 16:11:39 -08:00
2022-09-22 12:59:41 -07:00
2024-04-19 10:13:38 -07:00
2023-06-30 09:42:02 -07:00
2023-06-30 09:01:58 -07:00
2022-07-11 14:16:13 -07:00
2023-02-16 09:23:39 -08:00
2023-06-15 10:49:03 -07:00
2024-04-19 10:13:38 -07:00
2023-03-08 13:51:46 -08:00
2024-01-08 16:11:39 -08:00
2023-03-24 10:20:07 -07:00
2023-11-08 12:15:41 -08:00
2023-07-21 16:35:12 -07:00
2024-04-19 10:13:38 -07:00
2023-01-23 13:12:37 -08:00
2023-11-28 09:15:48 -08:00
2023-03-14 15:25:50 -07:00
2024-01-08 16:11:39 -08:00
2023-06-09 10:12:52 -07:00
2024-04-19 10:13:38 -07:00
2022-07-11 14:16:13 -07:00
2023-03-14 15:25:50 -07:00
2023-09-28 14:28:21 -07:00
2023-11-06 16:46:55 -08:00
2023-03-14 15:25:50 -07:00
2023-07-21 16:35:12 -07:00
2022-07-11 14:16:13 -07:00
2023-03-14 15:25:50 -07:00
2023-03-14 15:59:58 -07:00
2023-06-09 10:12:52 -07:00
2022-07-11 14:16:13 -07:00
2022-03-15 15:13:42 -07:00
2022-01-07 10:36:49 -08:00
2022-01-12 16:14:36 -08:00
2022-07-11 14:16:13 -07:00
2024-01-29 14:53:29 -08:00
2023-04-19 13:22:59 -07:00
2022-09-27 16:42:41 -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
2023-03-08 13:51:46 -08:00
2023-03-02 13:52:21 -08:00
2022-03-15 15:13:42 -07:00
2022-10-13 10:03:29 -07:00
2023-11-06 16:47:41 -08:00
2023-09-19 08:51:00 -07:00
2023-03-14 15:25:50 -07:00
2024-04-19 10:13:38 -07:00
2024-02-12 14:04:27 -08:00
2022-09-27 16:42:41 -07:00
2024-01-16 11:32:19 -08: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
2023-06-27 09:09:48 -07:00
2022-07-11 14:16:13 -07:00
2022-07-11 14:16:13 -07:00
2020-11-13 13:51:51 -08:00
2023-03-14 15:25:50 -07:00
2022-03-15 15:13:42 -07:00
2022-03-15 15:13:42 -07:00
2023-07-21 16:35:12 -07:00
2023-05-18 10:02:20 -07:00
2024-01-29 14:53:29 -08:00
2022-09-08 10:30:53 -07:00
2022-07-11 14:16:13 -07:00
2023-11-16 14:23:03 -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
2022-09-06 09:43:21 -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
2023-07-21 16:35:12 -07:00
2023-10-03 09:06:07 -07:00
2023-03-14 15:25:50 -07:00
2022-07-11 14:16:13 -07:00
2024-01-18 11:33:29 -08:00
2024-01-29 14:53:29 -08:00
2024-04-19 10:13:38 -07:00
2024-04-19 10:13:38 -07:00
2024-04-19 10:13:38 -07:00
2023-03-14 15:25:50 -07:00
2018-02-08 15:29:24 -08:00
2023-03-14 15:25:50 -07:00
2020-02-14 13:41:42 -08:00
2022-09-02 13:31:19 -07:00
2023-03-14 15:25:50 -07:00
2022-07-11 14:16:13 -07:00
2022-07-11 14:16:13 -07:00
2023-03-02 13:52:21 -08:00
2023-07-21 16:35:12 -07:00
2023-06-09 10:12:52 -07:00
2023-03-02 13:52:21 -08:00
2023-11-06 16:47:41 -08:00
2023-04-17 16:42:09 -07:00
2023-06-09 10:12:52 -07:00
2023-03-10 11:59:53 -08:00
2022-07-11 14:16:13 -07:00
2024-01-08 16:11:39 -08:00
2022-07-11 14:16:13 -07:00
2022-07-11 14:16:13 -07:00
2024-03-29 17:10:04 -07:00
2024-04-19 10:13:38 -07:00
2024-01-08 16:11:39 -08:00
2023-02-27 14:41:02 -08:00
2022-09-27 16:35:29 -07:00
2024-04-19 10:13:38 -07:00
2022-07-11 14:16:13 -07:00
2022-11-29 09:26:03 -08:00
2022-03-23 08:51:00 -07:00
2024-04-19 10:13:38 -07:00