diff options
| author | Jerry Jelinek <jerry.jelinek@joyent.com> | 2018-09-19 12:30:47 +0000 |
|---|---|---|
| committer | Jerry Jelinek <jerry.jelinek@joyent.com> | 2018-09-19 12:30:47 +0000 |
| commit | a149c206ad4a0b0845b293a58accc36cc411052f (patch) | |
| tree | f1f17f60cfa30707da246d14f0ee4ae38c578187 /usr/src/uts/common/fs/zfs/dsl_pool.c | |
| parent | 08ed30b08319fab99ae1fcd27f76a5fb17250478 (diff) | |
| parent | 7928f4baf4ab3230557eb6289be68aa7a3003f38 (diff) | |
| download | illumos-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.c | 10 |
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); |
