diff options
author | George Wilson <[email protected]> | 2013-05-06 10:14:52 -0700 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2013-05-06 12:39:34 -0700 |
commit | 55d85d5a8c45c4559a4a0e675c37b0c3afb19c2f (patch) | |
tree | de4e1e0564aa00bb1dcb8b91c15e9655f7f36248 /module/zfs/metaslab.c | |
parent | 5853fe790d1df58c5dd85ea52c5e165b6d43013c (diff) |
Illumos #3329, #3330, #3331, #3335
3329 spa_sync() spends 10-20% of its time in spa_free_sync_cb()
3330 space_seg_t should have its own kmem_cache
3331 deferred frees should happen after sync_pass 1
3335 make SYNC_PASS_* constants tunable
Reviewed by: Adam Leventhal <[email protected]>
Reviewed by: Matt Ahrens <[email protected]>
Reviewed by: Christopher Siden <[email protected]>
Reviewed by: Eric Schrock <[email protected]>
Reviewed by: Richard Lowe <[email protected]>
Reviewed by: Dan McDonald <[email protected]>
Approved by: Eric Schrock <[email protected]>
References:
illumos/illumos-gate@01f55e48fb4d524eaf70687728aa51b7762e2e97
https://www.illumos.org/issues/3329
https://www.illumos.org/issues/3330
https://www.illumos.org/issues/3331
https://www.illumos.org/issues/3335
Ported-by: Brian Behlendorf <[email protected]>
Diffstat (limited to 'module/zfs/metaslab.c')
-rw-r--r-- | module/zfs/metaslab.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/module/zfs/metaslab.c b/module/zfs/metaslab.c index 03d5a1d9c..76dc4f637 100644 --- a/module/zfs/metaslab.c +++ b/module/zfs/metaslab.c @@ -899,8 +899,9 @@ metaslab_activate(metaslab_t *msp, uint64_t activation_weight) if ((msp->ms_weight & METASLAB_ACTIVE_MASK) == 0) { space_map_load_wait(sm); if (!sm->sm_loaded) { - int error = space_map_load(sm, sm_ops, SM_FREE, - &msp->ms_smo, + space_map_obj_t *smo = &msp->ms_smo; + + int error = space_map_load(sm, sm_ops, SM_FREE, smo, spa_meta_objset(msp->ms_group->mg_vd->vdev_spa)); if (error) { metaslab_group_sort(msp->ms_group, msp, 0); |