summaryrefslogtreecommitdiffstats
path: root/mm/page_alloc.c
diff options
context:
space:
mode:
authorWu Fengguang <fengguang.wu@intel.com>2011-06-11 19:32:32 -0600
committerWu Fengguang <fengguang.wu@intel.com>2011-10-03 21:08:58 +0800
commit57fc978cfb61ed40a7bbfe5a569359159ba31abd (patch)
tree870ffd08e0c1bb0dde55e4f1ed4dfa2bda8e3a80 /mm/page_alloc.c
parentc8462cc9de9e92264ec647903772f6036a99b286 (diff)
downloadop-kernel-dev-57fc978cfb61ed40a7bbfe5a569359159ba31abd.zip
op-kernel-dev-57fc978cfb61ed40a7bbfe5a569359159ba31abd.tar.gz
writeback: control dirty pause time
The dirty pause time shall ultimately be controlled by adjusting nr_dirtied_pause, since there is relationship pause = pages_dirtied / task_ratelimit Assuming pages_dirtied ~= nr_dirtied_pause task_ratelimit ~= dirty_ratelimit We get nr_dirtied_pause ~= dirty_ratelimit * desired_pause Here dirty_ratelimit is preferred over task_ratelimit because it's more stable. It's also important to limit possible large transitional errors: - bw is changing quickly - pages_dirtied << nr_dirtied_pause on entering dirty exceeded area - pages_dirtied >> nr_dirtied_pause on btrfs (to be improved by a separate fix, but still expect non-trivial errors) So we end up using the above formula inside clamp_val(). The best test case for this code is to run 100 "dd bs=4M" tasks on btrfs and check its pause time distribution. Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Diffstat (limited to 'mm/page_alloc.c')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud