mm: vmscan: support equal reclaim for anon and file pages

When performing memory reclaim support treating anonymous and
file backed pages equally.

Swapping anonymous pages out to memory can be efficient enough
to justify treating anonymous and file backed pages equally.

CRs-Fixed: 648984
Change-Id: I6315b8557020d1e27a34225bb9cefbef1fb43266
Signed-off-by: Liam Mark <lmark@codeaurora.org>
Signed-off-by: Patrick Daly <pdaly@codeaurora.org>
Signed-off-by: Sudarshan Rajagopalan <sudaraja@codeaurora.org>
[swatsrid@codeaurora.org: Fix trivial merge conflicts]
Signed-off-by: Swathi Sridhar <swatsrid@codeaurora.org>
[isaacm@codeaurora.org: Fix trivial merge conflicts]
Signed-off-by: Isaac J. Manjarres <isaacm@codeaurora.org>
This commit is contained in:
Patrick Daly 2017-03-14 18:30:41 -07:00 • committed by Gerrit - the friendly Code Review server
commit 1839defde4
2 changed files with 11 additions and 1 deletions

View file

@ -616,6 +616,15 @@ config MAX_STACK_SIZE_MB
A sane initial value is 80 MB.
config BALANCE_ANON_FILE_RECLAIM
bool "During reclaim treat anon and file backed pages equally"
depends on SWAP
help
When performing memory reclaim treat anonymous and file backed pages
equally.
Swapping anonymous pages out to memory can be efficient enough to justify
treating anonymous and file backed pages equally.
config DEFERRED_STRUCT_PAGE_INIT
bool "Defer initialisation of struct pages to kthreads"
depends on SPARSEMEM

View file

@ -2397,7 +2397,8 @@ static void get_scan_count(struct lruvec *lruvec, struct mem_cgroup *memcg,
* lruvec even if it has plenty of old anonymous pages unless the
* system is under heavy pressure.
*/
if (!inactive_list_is_low(lruvec, true, sc, false) &&
if (!IS_ENABLED(CONFIG_BALANCE_ANON_FILE_RECLAIM) &&
!inactive_list_is_low(lruvec, true, sc, false) &&
lruvec_lru_size(lruvec, LRU_INACTIVE_FILE, sc->reclaim_idx) >> sc->priority) {
scan_balance = SCAN_FILE;
goto out;