aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Motin <mav@FreeBSD.org>2021-07-01 15:32:31 +0000
committerGitHub <noreply@github.com>2021-07-01 15:32:31 +0000
commitb192a2c0a19133234972b491e9c06093b3d21358 (patch)
tree8df9296060d668a224032aad4926d359be3eabcf
parent490c845efe3ca29eaa8aa6ea1e3f45eda72895fe (diff)
downloadsrc-b192a2c0a19133234972b491e9c06093b3d21358.tar.gz
src-b192a2c0a19133234972b491e9c06093b3d21358.zip
Remove avl_size field from struct avl_tree
This field is used only by illumos mdb. On other platforms it only increases the struct size from 32 to 40 bytes. For struct vdev_queue including 13 instances of avl_tree_t size means active cache lines. Keep the padding in user-space for now to not break the ABI. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Matthew Ahrens <mahrens@delphix.com> Signed-off-by: Alexander Motin <mav@FreeBSD.org> Sponsored-By: iXsystems, Inc. Closes #12290
-rw-r--r--include/sys/avl_impl.h4
-rw-r--r--module/avl/avl.c2
2 files changed, 3 insertions, 3 deletions
diff --git a/include/sys/avl_impl.h b/include/sys/avl_impl.h
index f577ecd42f7c..c464a62a1ca6 100644
--- a/include/sys/avl_impl.h
+++ b/include/sys/avl_impl.h
@@ -147,7 +147,9 @@ struct avl_tree {
int (*avl_compar)(const void *, const void *);
size_t avl_offset; /* offsetof(type, avl_link_t field) */
ulong_t avl_numnodes; /* number of nodes in the tree */
- size_t avl_size; /* sizeof user type struct */
+#ifndef _KERNEL
+ size_t avl_pad; /* For backwards ABI compatibility. */
+#endif
};
diff --git a/module/avl/avl.c b/module/avl/avl.c
index 1a95092bc2b6..3d36d4c87e0b 100644
--- a/module/avl/avl.c
+++ b/module/avl/avl.c
@@ -875,7 +875,6 @@ avl_swap(avl_tree_t *tree1, avl_tree_t *tree2)
ASSERT3P(tree1->avl_compar, ==, tree2->avl_compar);
ASSERT3U(tree1->avl_offset, ==, tree2->avl_offset);
- ASSERT3U(tree1->avl_size, ==, tree2->avl_size);
temp_node = tree1->avl_root;
temp_numnodes = tree1->avl_numnodes;
@@ -903,7 +902,6 @@ avl_create(avl_tree_t *tree, int (*compar) (const void *, const void *),
tree->avl_compar = compar;
tree->avl_root = NULL;
tree->avl_numnodes = 0;
- tree->avl_size = size;
tree->avl_offset = offset;
}