summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/fs/zfs/dsl_pool.c
diff options
context:
space:
mode:
authorJerry Jelinek <jerry.jelinek@joyent.com>2018-09-19 12:30:47 +0000
committerJerry Jelinek <jerry.jelinek@joyent.com>2018-09-19 12:30:47 +0000
commita149c206ad4a0b0845b293a58accc36cc411052f (patch)
treef1f17f60cfa30707da246d14f0ee4ae38c578187 /usr/src/uts/common/fs/zfs/dsl_pool.c
parent08ed30b08319fab99ae1fcd27f76a5fb17250478 (diff)
parent7928f4baf4ab3230557eb6289be68aa7a3003f38 (diff)
downloadillumos-joyent-a149c206ad4a0b0845b293a58accc36cc411052f.tar.gz
[illumos-gate merge]
commit 7928f4baf4ab3230557eb6289be68aa7a3003f38 9617 too-frequent TXG sync causes excessive write inflation commit e19b450bec203d8be04447ea476d7a86b36d63a1 8601 memory leak in get_special_prop() commit 1946268f4b5e55d1de5a354a87463d24be6991ca 9680 dsl_dataset_hold_obj can leak bookmarks commit 7341a7de4f0489193e0cfe11049a7bcf1596a4db 9677 panic from zio_write_gang_block() when creating dump device on fragmented rpool commit f62db44dbcda5dd786bb821f1e6fd3ca2e6d4391 9616 Bogus error when attempting to set property on read-only pool commit 837327673cfef3fa0e815ea9377af002d7b1e01b 9839 unix: add translation for netboot properties commit cbb9248e66a77c6382c6f48aebae5fd0ee60fa69 9835 ses topo module should use topo_mod_clean_str() commit 00d7a6fb939233ed021b823016c33fcae1dac964 9455 Expose drive speed and temperature on disk topo node commit c952f9c1bd80512c5c1db6f7c8c4b49d40154098 9844 libi386: Fix typo in pxe.h commit 4837313c99a7d59b1241728101760485b74f8d2b 9837 nfs_dlinet: allow nfs:// urls Conflicts: usr/src/lib/fm/topo/modules/common/disk/disk_common.c
Diffstat (limited to 'usr/src/uts/common/fs/zfs/dsl_pool.c')
-rw-r--r--usr/src/uts/common/fs/zfs/dsl_pool.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/usr/src/uts/common/fs/zfs/dsl_pool.c b/usr/src/uts/common/fs/zfs/dsl_pool.c
index 854be91503..6bb34fd7af 100644
--- a/usr/src/uts/common/fs/zfs/dsl_pool.c
+++ b/usr/src/uts/common/fs/zfs/dsl_pool.c
@@ -104,9 +104,11 @@ uint64_t zfs_dirty_data_max_max = 4ULL * 1024 * 1024 * 1024;
int zfs_dirty_data_max_percent = 10;
/*
- * If there is at least this much dirty data, push out a txg.
+ * If there's at least this much dirty data (as a percentage of
+ * zfs_dirty_data_max), push out a txg. This should be less than
+ * zfs_vdev_async_write_active_min_dirty_percent.
*/
-uint64_t zfs_dirty_data_sync = 64 * 1024 * 1024;
+uint64_t zfs_dirty_data_sync_pct = 20;
/*
* Once there is this amount of dirty data, the dmu_tx_delay() will kick in
@@ -825,10 +827,12 @@ dsl_pool_need_dirty_delay(dsl_pool_t *dp)
{
uint64_t delay_min_bytes =
zfs_dirty_data_max * zfs_delay_min_dirty_percent / 100;
+ uint64_t dirty_min_bytes =
+ zfs_dirty_data_max * zfs_dirty_data_sync_pct / 100;
boolean_t rv;
mutex_enter(&dp->dp_lock);
- if (dp->dp_dirty_total > zfs_dirty_data_sync)
+ if (dp->dp_dirty_total > dirty_min_bytes)
txg_kick(dp);
rv = (dp->dp_dirty_total > delay_min_bytes);
mutex_exit(&dp->dp_lock);