1
0
mirror of https://git.proxmox.com/git/mirror_zfs.git synced 2025-04-06 17:49:11 +03:00
mirror_zfs/module/zfs
Paul Dagnelie eef0f4d84e Keep more metaslabs loaded
With the other metaslab changes loaded onto a system, we can 
significantly reduce the memory usage of each loaded metaslab and 
unload them on demand if there is memory pressure. However, none 
of those changes actually result in us keeping more metaslabs loaded. 
If we don't keep more metaslabs loaded, we will still have to wait 
for demand-loading to finish when no loaded metaslab can satisfy our 
allocation, which can cause ZIL performance issues. In addition,
performance is traditionally measured by IOs per unit time, while 
unloading is currently done on a txg-count basis. Txgs can take a 
widely varying range of times, from tenths of a second to several 
seconds. This can result in confusing, hard to predict behavior.

This change simply adds a time-based component to metaslab unloading. 
A metaslab will remain loaded for one minute and 8 txgs (by default) 
after it was last used, unless it is evicted due to memory pressure.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Matt Ahrens <mahrens@delphix.com>
Signed-off-by: Paul Dagnelie <pcd@delphix.com>
External-issue: DLPX-65016
External-issue: DLPX-65047
Closes 
2019-08-29 10:20:36 -07:00
..
abd.c Tag ABD pages for exclusion in kernel crash dumps 2019-08-28 10:44:46 -07:00
aggsum.c
arc.c Cap metaslab memory usage 2019-08-16 09:08:21 -06:00
blkptr.c
bplist.c Fast Clone Deletion 2019-07-26 10:54:14 -07:00
bpobj.c Fast Clone Deletion 2019-07-26 10:54:14 -07:00
bptree.c Implement Redacted Send/Receive 2019-06-19 09:48:12 -07:00
bqueue.c Implement Redacted Send/Receive 2019-06-19 09:48:12 -07:00
cityhash.c
dataset_kstats.c
dbuf_stats.c
dbuf.c dmu_tx_wait() hang likely due to cv_signal() in dsl_pool_dirty_delta() 2019-08-15 17:53:53 -06:00
ddt_zap.c fat zap should prefetch when iterating 2019-06-12 13:13:09 -07:00
ddt.c Remove dedupditto functionality 2019-06-19 14:54:02 -07:00
dmu_diff.c Implement Redacted Send/Receive 2019-06-19 09:48:12 -07:00
dmu_object.c Fix send/recv lost spill block 2019-05-07 15:18:44 -07:00
dmu_objset.c dmu_tx_wait() hang likely due to cv_signal() in dsl_pool_dirty_delta() 2019-08-15 17:53:53 -06:00
dmu_recv.c Allow unencrypted children of encrypted datasets 2019-06-20 12:29:51 -07:00
dmu_redact.c Implement Redacted Send/Receive 2019-06-19 09:48:12 -07:00
dmu_send.c Implement Redacted Send/Receive 2019-06-19 09:48:12 -07:00
dmu_traverse.c Implement Redacted Send/Receive 2019-06-19 09:48:12 -07:00
dmu_tx.c Improve performance by using dmu_tx_hold_*_by_dnode() 2019-07-30 09:18:30 -07:00
dmu_zfetch.c Replace zf_rwlock with a mutex 2019-07-25 11:57:58 -07:00
dmu.c dmu_tx_wait() hang likely due to cv_signal() in dsl_pool_dirty_delta() 2019-08-15 17:53:53 -06:00
dnode_sync.c Decrease contention on dn_struct_rwlock 2019-07-08 13:18:50 -07:00
dnode.c Fix zil replay panic when TX_REMOVE followed by TX_CREATE 2019-08-28 10:42:02 -07:00
dsl_bookmark.c Implement Redacted Send/Receive 2019-06-19 09:48:12 -07:00
dsl_crypt.c Remove VERIFY from dsl_dataset_crypt_stats() 2019-07-05 16:53:14 -07:00
dsl_dataset.c Mark dsl_livelist_should_disable() static 2019-08-13 21:16:23 -06:00
dsl_deadlist.c Add fast path for zfs_ioc_space_snaps() handling of empty_bpobj 2019-08-20 11:34:52 -07:00
dsl_deleg.c
dsl_destroy.c Add fast path for zfs_ioc_space_snaps() handling of empty_bpobj 2019-08-20 11:34:52 -07:00
dsl_dir.c Fast Clone Deletion 2019-07-26 10:54:14 -07:00
dsl_pool.c dmu_tx_wait() hang likely due to cv_signal() in dsl_pool_dirty_delta() 2019-08-15 17:53:53 -06:00
dsl_prop.c
dsl_scan.c Fast Clone Deletion 2019-07-26 10:54:14 -07:00
dsl_synctask.c OpenZFS 9425 - channel programs can be interrupted 2019-06-22 16:51:46 -07:00
dsl_userhold.c
edonr_zfs.c
fm.c Don't wakeup unnecessarily in 'zpool events -f' 2019-08-05 11:35:47 -07:00
gzip.c
hkdf.c
lz4.c Reword comment in lz4_compress_zfs 2019-05-02 16:46:04 -07:00
lzjb.c
Makefile.in Log Spacemap Project 2019-07-16 10:11:49 -07:00
metaslab.c Keep more metaslabs loaded 2019-08-29 10:20:36 -07:00
mmp.c Use smaller default slack/delta value for schedule_hrtimeout_range() 2019-08-28 14:56:54 -07:00
multilist.c Avoid extra taskq_dispatch() calls by DMU 2019-06-25 12:03:38 -07:00
objlist.c Implement Redacted Send/Receive 2019-06-19 09:48:12 -07:00
pathname.c Disable unused pathname::pn_path* (unneeded in Linux) 2019-07-15 13:57:56 -07:00
policy.c Implement secpolicy_vnode_setid_retain() 2019-07-26 13:52:30 -07:00
qat_compress.c Code improvement and bug fixes for QAT support 2019-04-16 12:38:36 -07:00
qat_crypt.c Code improvement and bug fixes for QAT support 2019-04-16 12:38:36 -07:00
qat.c Code improvement and bug fixes for QAT support 2019-04-16 12:38:36 -07:00
qat.h Code improvement and bug fixes for QAT support 2019-04-16 12:38:36 -07:00
range_tree.c Metaslab max_size should be persisted while unloaded 2019-08-05 14:34:27 -07:00
refcount.c Prevent race in blkptr_verify against device removal 2019-08-13 21:24:43 -06:00
rrwlock.c 8659 static dtrace probes unavailable on non-GPL modules 2019-07-08 11:20:53 -07:00
sa.c Fix lockdep circular locking false positive involving sa_lock 2019-08-19 16:04:26 -07:00
sha256.c
skein_zfs.c
spa_boot.c
spa_checkpoint.c
spa_config.c Remove vn_set_fs_pwd()/vn_set_pwd() (no need to be at / during insmod) 2019-05-29 16:18:14 -07:00
spa_errlog.c
spa_history.c Fast Clone Deletion 2019-07-26 10:54:14 -07:00
spa_log_spacemap.c Cap metaslab memory usage 2019-08-16 09:08:21 -06:00
spa_misc.c Prevent race in blkptr_verify against device removal 2019-08-13 21:24:43 -06:00
spa_stats.c Restrict kstats and print real pointers 2019-04-04 18:57:06 -07:00
spa.c Cap metaslab memory usage 2019-08-16 09:08:21 -06:00
space_map.c Log Spacemap Project 2019-07-16 10:11:49 -07:00
space_reftree.c
THIRDPARTYLICENSE.cityhash
THIRDPARTYLICENSE.cityhash.descrip
trace.c 8659 static dtrace probes unavailable on non-GPL modules 2019-07-08 11:20:53 -07:00
txg.c Log Spacemap Project 2019-07-16 10:11:49 -07:00
uberblock.c
unique.c
vdev_cache.c
vdev_disk.c Revert "Fail early on bio corruption confirmed on 5.2-rc1" 2019-07-05 20:38:56 -07:00
vdev_file.c Update vdev_ops_t from illumos 2019-06-20 18:29:02 -07:00
vdev_indirect_births.c Fixes: Large kmem_alloc 2019-07-10 15:54:49 -07:00
vdev_indirect_mapping.c
vdev_indirect.c Log Spacemap Project 2019-07-16 10:11:49 -07:00
vdev_initialize.c Cap metaslab memory usage 2019-08-16 09:08:21 -06:00
vdev_label.c panic in removal_remap test on 4K devices 2019-06-13 13:12:39 -07:00
vdev_mirror.c Update vdev_ops_t from illumos 2019-06-20 18:29:02 -07:00
vdev_missing.c Update vdev_ops_t from illumos 2019-06-20 18:29:02 -07:00
vdev_queue.c Move write aggregation memory copy out of vq_lock 2019-06-13 13:08:24 -07:00
vdev_raidz_math_aarch64_neon_common.h Linux 5.0 compat: ASM_BUG macro 2019-05-08 10:18:40 -07:00
vdev_raidz_math_aarch64_neon.c Linux 5.0 compat: SIMD compatibility 2019-07-12 09:31:20 -07:00
vdev_raidz_math_aarch64_neonx2.c Linux 5.0 compat: SIMD compatibility 2019-07-12 09:31:20 -07:00
vdev_raidz_math_avx2.c Linux 5.0 compat: SIMD compatibility 2019-07-12 09:31:20 -07:00
vdev_raidz_math_avx512bw.c Linux 5.0 compat: SIMD compatibility 2019-07-12 09:31:20 -07:00
vdev_raidz_math_avx512f.c Linux 5.0 compat: SIMD compatibility 2019-07-12 09:31:20 -07:00
vdev_raidz_math_impl.h
vdev_raidz_math_scalar.c Linux 5.3: Fix switch() fall though compiler errors 2019-08-21 09:29:23 -07:00
vdev_raidz_math_sse2.c Linux 5.0 compat: SIMD compatibility 2019-07-12 09:31:20 -07:00
vdev_raidz_math_ssse3.c Linux 5.0 compat: SIMD compatibility 2019-07-12 09:31:20 -07:00
vdev_raidz_math.c Linux 5.0 compat: SIMD compatibility 2019-07-12 09:31:20 -07:00
vdev_raidz.c Update vdev_ops_t from illumos 2019-06-20 18:29:02 -07:00
vdev_removal.c Log Spacemap Project 2019-07-16 10:11:49 -07:00
vdev_root.c Update vdev_ops_t from illumos 2019-06-20 18:29:02 -07:00
vdev_trim.c Cap metaslab memory usage 2019-08-16 09:08:21 -06:00
vdev.c Cap metaslab memory usage 2019-08-16 09:08:21 -06:00
zap_leaf.c
zap_micro.c fat zap should prefetch when iterating 2019-06-12 13:13:09 -07:00
zap.c fat zap should prefetch when iterating 2019-06-12 13:13:09 -07:00
zcp_get.c Fix get_special_prop() build failure 2019-07-16 14:14:12 -07:00
zcp_global.c
zcp_iter.c Introduce getting holds and listing bookmarks through ZCP 2019-08-12 10:02:34 -07:00
zcp_synctask.c
zcp.c OpenZFS 9425 - channel programs can be interrupted 2019-06-22 16:51:46 -07:00
zfeature.c Consistently captialize GUID for features 2019-04-16 10:01:51 -07:00
zfs_acl.c
zfs_byteswap.c
zfs_ctldir.c Change boolean-like uint8_t fields in znode_t to boolean_t 2019-08-13 07:58:02 -06:00
zfs_debug.c Restrict kstats and print real pointers 2019-04-04 18:57:06 -07:00
zfs_dir.c
zfs_fm.c
zfs_fuid.c
zfs_ioctl.c zfs_ioc_snapshot: check user-prop permissions on snapshotted datasets 2019-08-27 13:45:53 -07:00
zfs_log.c Improve write performance by using dmu_read_by_dnode() 2019-08-15 17:36:24 -06:00
zfs_onexit.c
zfs_ratelimit.c
zfs_replay.c Fix zil replay panic when TX_REMOVE followed by TX_CREATE 2019-08-28 10:42:02 -07:00
zfs_rlock.c
zfs_sa.c
zfs_sysfs.c Prevent pointer to an out-of-scope local variable 2019-06-20 18:31:52 -07:00
zfs_vfsops.c Fix deadlock in 'zfs rollback' 2019-08-27 09:55:51 -07:00
zfs_vnops.c Fix out-of-order ZIL txtype lost on hardlinked files 2019-08-13 21:21:27 -06:00
zfs_znode.c Fix deadlock in 'zfs rollback' 2019-08-27 09:55:51 -07:00
zil.c Fix out-of-order ZIL txtype lost on hardlinked files 2019-08-13 21:21:27 -06:00
zio_checksum.c
zio_compress.c
zio_crypt.c Always call rw_init in zio_crypt_key_unwrap 2019-04-10 15:39:40 -07:00
zio_inject.c
zio.c Prevent race in blkptr_verify against device removal 2019-08-13 21:24:43 -06:00
zle.c
zpl_ctldir.c
zpl_export.c
zpl_file.c Fix errant EFAULT during writes () 2019-05-08 10:04:04 -07:00
zpl_inode.c Fix errant EFAULT during writes () 2019-05-08 10:04:04 -07:00
zpl_super.c
zpl_xattr.c Drop redundant POSIX ACL check in zpl_init_acl() 2019-07-15 16:26:52 -07:00
zrlock.c
zthr.c Fast Clone Deletion 2019-07-26 10:54:14 -07:00
zvol.c Add SCSI_PASSTHROUGH to zvols to enable UNMAP support 2019-06-21 09:40:56 -07:00