mirror_zfs/include/sys
chrisrd e71cade67d Scale the dbuf cache with arc_c
Commit d3c2ae1 introduced a dbuf cache with a default size of the
minimum of 100M or 1/32 maximum ARC size. (These figures may be adjusted
using dbuf_cache_max_bytes and dbuf_cache_max_shift.) The dbuf cache
is counted as metadata for the purposes of ARC size calculations.

On a 1GB box the ARC maximum size defaults to c_max 493M which gives a
dbuf cache default minimum size of 15.4M, and the ARC metadata defaults
to minimum 16M. I.e. the dbuf cache is an significant proportion of the
minimum metadata size. With other overheads involved this actually means
the ARC metadata doesn't get down to the minimum.

This patch dynamically scales the dbuf cache to the target ARC size
instead of statically scaling it to the maximum ARC size. (The scale is
still set by dbuf_cache_max_shift and the maximum size is still fixed by
dbuf_cache_max_bytes.) Using the target ARC size rather than the current
ARC size is done to help the ARC reach the target rather than simply
focusing on the current size.

Reviewed-by: Chunwei Chen <tuxoko@gmail.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: George Melikov <mail@gmelikov.ru>
Signed-off-by: Chris Dunlop <chris@onthe.net.au>
Issue #6506 
Closes #6561
2017-09-29 15:49:19 -07:00
..
crypto
fm Native Encryption for ZFS on Linux 2017-08-14 10:36:48 -07:00
fs Native Encryption for ZFS on Linux 2017-08-14 10:36:48 -07:00
sysevent OpenZFS 6939 - add sysevents to zfs core for commands 2017-07-12 21:28:13 -07:00
abd.h OpenZFS 8416 - abd.h is not C++ friendly 2017-06-30 11:11:01 -07:00
arc_impl.h Native Encryption for ZFS on Linux 2017-08-14 10:36:48 -07:00
arc.h Scale the dbuf cache with arc_c 2017-09-29 15:49:19 -07:00
avl_impl.h
avl.h
blkptr.h OpenZFS 8067 - zdb should be able to dump literal embedded block pointer 2017-07-07 11:28:01 -07:00
bplist.h
bpobj.h
bptree.h
bqueue.h
dbuf.h Native Encryption for ZFS on Linux 2017-08-14 10:36:48 -07:00
ddt.h Native Encryption for ZFS on Linux 2017-08-14 10:36:48 -07:00
dmu_impl.h OpenZFS 7793 - ztest fails assertion in dmu_tx_willuse_space 2017-03-07 09:51:59 -08:00
dmu_objset.h Native Encryption for ZFS on Linux 2017-08-14 10:36:48 -07:00
dmu_send.h Native Encryption for ZFS on Linux 2017-08-14 10:36:48 -07:00
dmu_traverse.h Native Encryption for ZFS on Linux 2017-08-14 10:36:48 -07:00
dmu_tx.h OpenZFS 7793 - ztest fails assertion in dmu_tx_willuse_space 2017-03-07 09:51:59 -08:00
dmu_zfetch.h
dmu.h Send / Recv Fixes following b52563 2017-08-23 16:54:24 -07:00
dnode.h Improved dnode allocation and dmu_hold_impl() 2017-09-05 16:15:04 -07:00
dsl_bookmark.h
dsl_crypt.h Native Encryption for ZFS on Linux 2017-08-14 10:36:48 -07:00
dsl_dataset.h Native Encryption for ZFS on Linux 2017-08-14 10:36:48 -07:00
dsl_deadlist.h
dsl_deleg.h Native Encryption for ZFS on Linux 2017-08-14 10:36:48 -07:00
dsl_destroy.h
dsl_dir.h Native Encryption for ZFS on Linux 2017-08-14 10:36:48 -07:00
dsl_pool.h Native Encryption for ZFS on Linux 2017-08-14 10:36:48 -07:00
dsl_prop.h
dsl_scan.h Implemented zpool scrub pause/resume 2017-07-06 22:16:13 -07:00
dsl_synctask.h
dsl_userhold.h
edonr.h
efi_partition.h Fix spelling 2017-01-03 11:31:18 -06:00
Makefile.am Native Encryption for ZFS on Linux 2017-08-14 10:36:48 -07:00
metaslab_impl.h OpenZFS 7613 - ms_freetree[4] is only used in syncing context 2017-01-26 15:27:19 -08:00
metaslab.h OpenZFS 7303 - dynamic metaslab selection 2017-01-12 11:52:56 -08:00
mmp.h Add callback for zfs_multihost_interval 2017-07-25 13:22:20 -04:00
mntent.h
multilist.h OpenZFS 7968 - multi-threaded spa_sync() 2017-03-20 18:36:00 -07:00
nvpair_impl.h
nvpair.h
pathname.h
policy.h
range_tree.h
refcount.h Linux 4.11 compat: avoid refcount_t name conflict 2017-02-28 16:10:18 -08:00
rrwlock.h
sa_impl.h
sa.h
sdt.h Add line info and SET_ERROR() to ZFS debug log 2017-07-25 23:09:48 -07:00
sha2.h
skein.h
spa_boot.h
spa_checksum.h
spa_impl.h Native Encryption for ZFS on Linux 2017-08-14 10:36:48 -07:00
spa.h vdev_mirror: kstat observables for preferred vdev 2017-08-21 10:05:54 -07:00
space_map.h
space_reftree.h
sysevent.h OpenZFS 6939 - add sysevents to zfs core for commands 2017-07-12 21:28:13 -07:00
trace_acl.h Fix build-it compilation regression 2017-01-24 08:50:15 -08:00
trace_arc.h Fix build-it compilation regression 2017-01-24 08:50:15 -08:00
trace_common.h
trace_dbgmsg.h Add line info and SET_ERROR() to ZFS debug log 2017-07-25 23:09:48 -07:00
trace_dbuf.h Crash in dbuf_evict_one with DTRACE_PROBE 2017-08-09 11:04:41 -07:00
trace_dmu.h OpenZFS 7793 - ztest fails assertion in dmu_tx_willuse_space 2017-03-07 09:51:59 -08:00
trace_dnode.h Fix build-it compilation regression 2017-01-24 08:50:15 -08:00
trace_multilist.h Fix build-it compilation regression 2017-01-24 08:50:15 -08:00
trace_txg.h Fix build-it compilation regression 2017-01-24 08:50:15 -08:00
trace_zil.h OpenZFS 7578 - Fix/improve some aspects of ZIL writing 2017-06-09 09:15:37 -07:00
trace_zio.h
trace_zrlock.h
trace.h
txg_impl.h Fix spelling 2017-01-03 11:31:18 -06:00
txg.h OpenZFS 8063 - verify that we do not attempt to access inactive txg 2017-05-10 13:52:22 -04:00
u8_textprep_data.h
u8_textprep.h
uberblock_impl.h OpenZFS 8491 - uberblock on-disk padding to reserve space for smoothly merging zpool checkpoint & MMP in ZFS 2017-07-24 13:47:51 -04:00
uberblock.h Multi-modifier protection (MMP) 2017-07-13 13:54:00 -04:00
uio_impl.h
unique.h
uuid.h
vdev_disk.h
vdev_file.h Use a dedicated taskq for vdev_file 2016-12-21 10:47:15 -08:00
vdev_impl.h vdev_mirror: load balancing fixes 2017-08-21 10:05:16 -07:00
vdev_raidz_impl.h
vdev_raidz.h
vdev.h vdev_mirror: load balancing fixes 2017-08-21 10:05:16 -07:00
xvattr.h Fix spelling 2017-01-03 11:31:18 -06:00
zap_impl.h OpenZFS 7793 - ztest fails assertion in dmu_tx_willuse_space 2017-03-07 09:51:59 -08:00
zap_leaf.h
zap.h OpenZFS 1300 - filename normalization doesn't work for removes 2017-02-02 14:13:41 -08:00
zfeature.h
zfs_acl.h Rename zfs_sb_t -> zfsvfs_t 2017-03-10 09:51:33 -08:00
zfs_context.h Simplify threads, mutexs, cvs and rwlocks 2017-08-11 08:51:44 -07:00
zfs_ctldir.h Rename zfs_sb_t -> zfsvfs_t 2017-03-10 09:51:33 -08:00
zfs_debug.h Add line info and SET_ERROR() to ZFS debug log 2017-07-25 23:09:48 -07:00
zfs_delay.h
zfs_dir.h Rename zfs_sb_t -> zfsvfs_t 2017-03-10 09:51:33 -08:00
zfs_fuid.h Rename zfs_sb_t -> zfsvfs_t 2017-03-10 09:51:33 -08:00
zfs_ioctl.h Send / Recv Fixes following b52563 2017-08-23 16:54:24 -07:00
zfs_onexit.h
zfs_ratelimit.h Add missing *_destroy/*_fini calls 2017-05-04 19:26:28 -04:00
zfs_rlock.h Rename zfs_sb_t -> zfsvfs_t 2017-03-10 09:51:33 -08:00
zfs_sa.h
zfs_stat.h
zfs_vfsops.h Linux 4.12 compat: super_setup_bdi_name() 2017-05-02 09:46:18 -07:00
zfs_vnops.h Rename zfs_* functions 2017-03-10 09:51:35 -08:00
zfs_znode.h Rename zfs_sb_t -> zfsvfs_t 2017-03-10 09:51:33 -08:00
zil_impl.h OpenZFS 7578 - Fix/improve some aspects of ZIL writing 2017-06-09 09:15:37 -07:00
zil.h Native Encryption for ZFS on Linux 2017-08-14 10:36:48 -07:00
zio_checksum.h Remove dependency on linear ABD 2017-03-29 12:24:51 -07:00
zio_compress.h
zio_crypt.h Native Encryption for ZFS on Linux 2017-08-14 10:36:48 -07:00
zio_impl.h Native Encryption for ZFS on Linux 2017-08-14 10:36:48 -07:00
zio_priority.h
zio.h Add corruption failure option to zinject(8) 2017-08-14 15:17:15 -07:00
zpl.h
zrlock.h OpenZFS 6328 - Fix cstyle errors in zfs codebase 2017-01-12 09:42:11 -08:00
zvol.h Add port of FreeBSD 'volmode' property 2017-07-12 13:05:37 -07:00