aboutsummaryrefslogtreecommitdiffstats
path: root/include/sys/spa_impl.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/sys/spa_impl.h')
-rw-r--r--include/sys/spa_impl.h12
1 files changed, 10 insertions, 2 deletions
diff --git a/include/sys/spa_impl.h b/include/sys/spa_impl.h
index 8d2a20dbb..1b8e48180 100644
--- a/include/sys/spa_impl.h
+++ b/include/sys/spa_impl.h
@@ -239,8 +239,16 @@ struct spa {
uint64_t spa_last_synced_guid; /* last synced guid */
list_t spa_config_dirty_list; /* vdevs with dirty config */
list_t spa_state_dirty_list; /* vdevs with dirty state */
- kmutex_t spa_alloc_lock;
- avl_tree_t spa_alloc_tree;
+ /*
+ * spa_alloc_locks and spa_alloc_trees are arrays, whose lengths are
+ * stored in spa_alloc_count. There is one tree and one lock for each
+ * allocator, to help improve allocation performance in write-heavy
+ * workloads.
+ */
+ kmutex_t *spa_alloc_locks;
+ avl_tree_t *spa_alloc_trees;
+ int spa_alloc_count;
+
spa_aux_vdev_t spa_spares; /* hot spares */
spa_aux_vdev_t spa_l2cache; /* L2ARC cache devices */
nvlist_t *spa_label_features; /* Features for reading MOS */