diff options
author | mm <mm@FreeBSD.org> | 2012-11-25 09:06:32 +0000 |
---|---|---|
committer | mm <mm@FreeBSD.org> | 2012-11-25 09:06:32 +0000 |
commit | 5d9b3f284b13ac492326e05f6ba4c00e98adf05c (patch) | |
tree | 36b2f7e2f2adc541015a78c4fbbdd949f0d53221 /sys/cddl/contrib/opensolaris/uts/common/fs/zfs/metaslab.c | |
parent | 84f010d5a7250a10d6a11f665c9f105faf976091 (diff) | |
download | FreeBSD-src-5d9b3f284b13ac492326e05f6ba4c00e98adf05c.zip FreeBSD-src-5d9b3f284b13ac492326e05f6ba4c00e98adf05c.tar.gz |
MFV r242735:
Illumos 13879:4eac7a87eff2:
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
New loader-only tunables:
vfs.zfs.sync_pass_deferred_free
vfs.zfs.sync_pass_dont_compress
vfs.zfs.sync_pass_rewrite
References:
https://www.illumos.org/issues/3329
https://www.illumos.org/issues/3330
https://www.illumos.org/issues/3331
https://www.illumos.org/issues/3335
MFC after: 2 weeks
Diffstat (limited to 'sys/cddl/contrib/opensolaris/uts/common/fs/zfs/metaslab.c')
-rw-r--r-- | sys/cddl/contrib/opensolaris/uts/common/fs/zfs/metaslab.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/metaslab.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/metaslab.c index a0723a3..5d83f69 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/metaslab.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/metaslab.c @@ -881,8 +881,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); |