From 6cde64351e236712a17d41c1578d5843a0f006e4 Mon Sep 17 00:00:00 2001 From: Brian Behlendorf Date: Tue, 1 Sep 2015 09:45:10 -0700 Subject: Add spa_slop_shift module option Allow for easy turning of a pools reserved free space. Previous versions of ZFS (v0.6.4 and earlier) held 1/64 of the pools capacity in reserve. Commits 3d45fdd and 0c60cc3 increased this to 1/32. Setting spa_slop_shift=6 will restore the previous default setting. Signed-off-by: Brian Behlendorf Closes #3724 --- man/man5/zfs-module-parameters.5 | 16 ++++++++++++++++ module/zfs/spa_misc.c | 3 +++ 2 files changed, 19 insertions(+) diff --git a/man/man5/zfs-module-parameters.5 b/man/man5/zfs-module-parameters.5 index de3f35bbb..35ea9d9f6 100644 --- a/man/man5/zfs-module-parameters.5 +++ b/man/man5/zfs-module-parameters.5 @@ -301,6 +301,22 @@ rewind" (\fB-X\fR) pool import. Default value: 10000 .RE +.sp +.ne 2 +.na +\fBspa_slop_shift\fR (int) +.ad +.RS 12n +Normally, we don't allow the last 3.2% (1/(2^spa_slop_shift)) of space +in the pool to be consumed. This ensures that we don't run the pool +completely out of space, due to unaccounted changes (e.g. to the MOS). +It also limits the worst-case time to allocate space. If we have +less than this amount of free space, most ZPL operations (e.g. write, +create) will return ENOSPC. +.sp +Default value: 5 +.RE + .sp .ne 2 .na diff --git a/module/zfs/spa_misc.c b/module/zfs/spa_misc.c index ad9f9fe28..409dce121 100644 --- a/module/zfs/spa_misc.c +++ b/module/zfs/spa_misc.c @@ -2094,4 +2094,7 @@ MODULE_PARM_DESC(zfs_deadman_enabled, "Enable deadman timer"); module_param(spa_asize_inflation, int, 0644); MODULE_PARM_DESC(spa_asize_inflation, "SPA size estimate multiplication factor"); + +module_param(spa_slop_shift, int, 0644); +MODULE_PARM_DESC(spa_slop_shift, "Reserved free space in pool"); #endif -- cgit v1.2.3