balance anon/file reclaim
authorhuangzq2 <huangzq2@motorola.com>
Fri, 25 Jan 2019 09:46:58 +0000 (17:46 +0800)
committerCosmin Tanislav <demonsingur@gmail.com>
Mon, 22 Apr 2024 17:23:54 +0000 (20:23 +0300)
Change-Id: I0ad49bb3e6b0b20fc2f23f8cf3a08e73f7cc2b00
Signed-off-by: huangzq2 <huangzq2@motorola.com>
Reviewed-on: https://gerrit.mot.com/1301255
SME-Granted: SME Approvals Granted
SLTApproved: Slta Waiver
Tested-by: Jira Key
Reviewed-by: Hua Tan <tanhua1@motorola.com>
Submit-Approved: Jira Key

arch/arm64/configs/ext_config/moto-erd9610.config
mm/Kconfig
mm/vmscan.c

index 7a3f50f19bcffeaa3709469d933e4a5c897bfe77..ed78a6994cca769ee959707a90885d80e49767e6 100644 (file)
@@ -31,6 +31,7 @@ CONFIG_SUSPEND_SKIP_SYNC=y
 CONFIG_CMA_SIZE_MBYTES=22
 CONFIG_MEMCG=y
 CONFIG_MEMCG_SWAP=y
+CONFIG_BALANCE_ANON_FILE_RECLAIM=y
 # CONFIG_ANDROID_LOW_MEMORY_KILLER is not set
 # CONFIG_KSM is not set
 # CONFIG_PAGE_OWNER is not set
index 95b0c6c209580068981f13ec3c01c5663c68166c..71817a3b7787dd8b088ca466f1cdbcef99e5077f 100644 (file)
@@ -639,6 +639,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 HPA
        bool "High-order Pages Allocator"
        select CMA
index add6aadeaf5fcb0a40b1f6884892c81d6cb0d189..f73d6465eab8f18d2369279e76e97e97104e24be 100644 (file)
@@ -2289,7 +2289,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;