ANDROID: vendor_hooks: Add hooks for shrink_active_list

Provide a vendor hook to allow page_referenced to be skipped
during shrink_active_list to avoid heavy cpuloading caused by
it.

Bug: 220878851
Signed-off-by: Liujie Xie <xieliujie@oppo.com>
Change-Id: Ie0e369f8f8739fea59a95470af20ab0e976869d1
This commit is contained in:
Liujie Xie
2022-02-23 10:32:01 +08:00
committed by Suren Baghdasaryan
parent 62412e5b8c
commit f2d0c30576
3 changed files with 11 additions and 1 deletions

View File

@@ -2083,6 +2083,7 @@ static void shrink_active_list(unsigned long nr_to_scan,
unsigned nr_rotated = 0;
int file = is_file_lru(lru);
struct pglist_data *pgdat = lruvec_pgdat(lruvec);
bool bypass = false;
lru_add_drain();
@@ -2117,6 +2118,10 @@ static void shrink_active_list(unsigned long nr_to_scan,
}
}
trace_android_vh_page_referenced_check_bypass(page, nr_to_scan, lru, &bypass);
if (bypass)
goto skip_page_referenced;
if (page_referenced(page, 0, sc->target_mem_cgroup,
&vm_flags)) {
/*
@@ -2134,7 +2139,7 @@ static void shrink_active_list(unsigned long nr_to_scan,
continue;
}
}
skip_page_referenced:
ClearPageActive(page); /* we are de-activating */
SetPageWorkingset(page);
list_add(&page->lru, &l_inactive);