Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Skip to content
Commit a1fd9632 authored by Johannes Weiner's avatar Johannes Weiner Committed by Gerrit - the friendly Code Review server
Browse files

mm/page-writeback.c: do not count anon pages as dirtyable memory



The VM is currently heavily tuned to avoid swapping.  Whether that is
good or bad is a separate discussion, but as long as the VM won't swap
to make room for dirty cache, we can not consider anonymous pages when
calculating the amount of dirtyable memory, the baseline to which
dirty_background_ratio and dirty_ratio are applied.

A simple workload that occupies a significant size (40+%, depending on
memory layout, storage speeds etc.) of memory with anon/tmpfs pages and
uses the remainder for a streaming writer demonstrates this problem.  In
that case, the actual cache pages are a small fraction of what is
considered dirtyable overall, which results in an relatively large
portion of the cache pages to be dirtied.  As kswapd starts rotating
these, random tasks enter direct reclaim and stall on IO.

Only consider free pages and file pages dirtyable.

Signed-off-by: default avatarJohannes Weiner <hannes@cmpxchg.org>
Reported-by: default avatarTejun Heo <tj@kernel.org>
Tested-by: default avatarTejun Heo <tj@kernel.org>
Reviewed-by: default avatarRik van Riel <riel@redhat.com>
Cc: Mel Gorman <mgorman@suse.de>
Cc: Wu Fengguang <fengguang.wu@intel.com>
Reviewed-by: default avatarMichal Hocko <mhocko@suse.cz>
Cc: <stable@vger.kernel.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
Git-commit: a1c3bfb2f67ef766de03f1f56bdfff9c8595ab14
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git


[vinmenon@codeaurora.org: resolve trivial merge conflicts]
Change-Id: I35ae9cfbcccbf3329e6f15158cc7bb72905cb7ce
Signed-off-by: default avatarVinayak Menon <vinmenon@codeaurora.org>
parent 1027d3d1
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment