diff options
author | avg <avg@FreeBSD.org> | 2014-10-07 16:08:21 +0000 |
---|---|---|
committer | avg <avg@FreeBSD.org> | 2014-10-07 16:08:21 +0000 |
commit | e2d6ebec55f41f7360a1479231b139957f19dc26 (patch) | |
tree | f0ec701ab9c202cbc893e9da7e991999d6091c5e | |
parent | 9dd0ee9433e0e1a0f0baaa3f907dd207a0c9c8d4 (diff) | |
download | FreeBSD-src-e2d6ebec55f41f7360a1479231b139957f19dc26.zip FreeBSD-src-e2d6ebec55f41f7360a1479231b139957f19dc26.tar.gz |
l2arc_write_buffers: reduce headroom value
FreeBSD has ARC_BUFC_NUMMETADATALISTS metadata lists and ARC_BUFC_NUMDATALISTS
data lists (currently both are 16) while illumos has just a single list
of each kind.
headroom determines how much data is scanned on a single list
during each run of the l2arc feed thread.
Because FreeBSD has more lists we proportionally decrease the limit.
Reviewed by: Brendan Gregg (earlier version)
MFC after: 2 weeks
Sponsored by: HybridCluster
-rw-r--r-- | sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c index 1a1d4d8..60d2ff9 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c @@ -5047,7 +5047,7 @@ l2arc_write_buffers(spa_t *spa, l2arc_dev_t *dev, uint64_t target_sz, if (ab == NULL) ARCSTAT_BUMP(arcstat_l2_write_buffer_list_null_iter); - headroom = target_sz * l2arc_headroom; + headroom = target_sz * l2arc_headroom * 2 / ARC_BUFC_NUMLISTS; if (do_headroom_boost) headroom = (headroom * l2arc_headroom_boost) / 100; |