]> git.proxmox.com Git - mirror_zfs.git/commit - module/zfs/spa_misc.c
OpenZFS 7303 - dynamic metaslab selection
authorDon Brady <don.brady@intel.com>
Thu, 12 Jan 2017 19:52:56 +0000 (12:52 -0700)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Thu, 12 Jan 2017 19:52:56 +0000 (11:52 -0800)
commit4e21fd060a567a9c8a1bd0e640985412181c1e33
tree622424c5f98ac43cd93d8af221775a77df161856
parent5727b00e06a4208a7040489d582f13bc3c183384
OpenZFS 7303 - dynamic metaslab selection

This change introduces a new weighting algorithm to improve
metaslab selection. The new weighting algorithm relies on the
SPACEMAP_HISTOGRAM feature. As a result, the metaslab weight
now encodes the type of weighting algorithm used (size-based
vs segment-based).

Porting Notes: The metaslab allocation tracing code is conditionally
removed on linux (dependent on mdb debugger).

Authored by: George Wilson <george.wilson@delphix.com>
Reviewed by: Alex Reece <alex@delphix.com>
Reviewed by: Chris Siden <christopher.siden@delphix.com>
Reviewed by: Dan Kimmel <dan.kimmel@delphix.com>
Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Reviewed by: Paul Dagnelie <paul.dagnelie@delphix.com>
Reviewed by: Pavel Zakharov pavel.zakharov@delphix.com
Reviewed by: Prakash Surya <prakash.surya@delphix.com>
Reviewed by: Don Brady <don.brady@intel.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Ported-by: Don Brady <don.brady@intel.com>
OpenZFS-issue: https://www.illumos.org/issues/7303
OpenZFS-commit: https://github.com/openzfs/openzfs/commit/d5190931bd
Closes #5404
13 files changed:
cmd/zdb/zdb.c
cmd/ztest/ztest.c
include/sys/metaslab.h
include/sys/metaslab_impl.h
include/sys/zfs_context.h
include/sys/zfs_debug.h
include/sys/zio.h
man/man5/zfs-module-parameters.5
module/zfs/metaslab.c
module/zfs/spa.c
module/zfs/spa_misc.c
module/zfs/space_map.c
module/zfs/zio.c