Skip to content

Commit

Permalink
mm/page-writeback.c: print a warning if the vm dirtiness settings are…
Browse files Browse the repository at this point in the history
… illogical

The vm direct limit setting must be set greater than vm background limit
setting.  Otherwise print a warning to help the operator to figure out
that the vm dirtiness settings is in illogical state.

Link: http://lkml.kernel.org/r/1506592464-30962-1-git-send-email-laoar.shao@gmail.com
Signed-off-by: Yafang Shao <laoar.shao@gmail.com>
Cc: Jan Kara <jack@suse.cz>
Cc: Michal Hocko <mhocko@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
Yafang Shao authored and Linus Torvalds committed Nov 16, 2017
1 parent 66e8b43 commit 0f6d24f
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 1 deletion.
7 changes: 7 additions & 0 deletions Documentation/sysctl/vm.txt
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,10 @@ Note: the minimum value allowed for dirty_bytes is two pages (in bytes); any
value lower than this limit will be ignored and the old configuration will be
retained.

Note: the value of dirty_bytes also must be set greater than
dirty_background_bytes or the amount of memory corresponding to
dirty_background_ratio.

==============================================================

dirty_expire_centisecs
Expand All @@ -176,6 +180,9 @@ generating disk writes will itself start writing out dirty data.

The total available memory is not equal to total system memory.

Note: dirty_ratio must be set greater than dirty_background_ratio or
ratio corresponding to dirty_background_bytes.

==============================================================

dirty_writeback_centisecs
Expand Down
5 changes: 4 additions & 1 deletion mm/page-writeback.c
Original file line number Diff line number Diff line change
Expand Up @@ -433,8 +433,11 @@ static void domain_dirty_limits(struct dirty_throttle_control *dtc)
else
bg_thresh = (bg_ratio * available_memory) / PAGE_SIZE;

if (bg_thresh >= thresh)
if (unlikely(bg_thresh >= thresh)) {
pr_warn("vm direct limit must be set greater than background limit.\n");
bg_thresh = thresh / 2;
}

tsk = current;
if (tsk->flags & PF_LESS_THROTTLE || rt_task(tsk)) {
bg_thresh += bg_thresh / 4 + global_wb_domain.dirty_limit / 32;
Expand Down

0 comments on commit 0f6d24f

Please sign in to comment.