ANDROID: vendor_hook: Add hook in inactive_is_low()
Provide a vendor hook android_vh_inactive_is_low to replace the calculation process of inactive_ratio. The alternative calculation algorithm takes into account the difference between file pages and anonymous pages. Bug: 234214858 Signed-off-by: Bing Han <bing.han@transsion.com> Change-Id: I6cf9c47fbc440852cc36e04f49d644146eb2c6af
This commit is contained in:

committed by
Treehugger Robot

parent
bb9c8f5256
commit
6b04959511
@@ -2270,11 +2270,16 @@ static bool inactive_is_low(struct lruvec *lruvec, enum lru_list inactive_lru)
|
||||
unsigned long inactive, active;
|
||||
unsigned long inactive_ratio;
|
||||
unsigned long gb;
|
||||
bool skip = false;
|
||||
|
||||
inactive = lruvec_page_state(lruvec, NR_LRU_BASE + inactive_lru);
|
||||
active = lruvec_page_state(lruvec, NR_LRU_BASE + active_lru);
|
||||
|
||||
gb = (inactive + active) >> (30 - PAGE_SHIFT);
|
||||
trace_android_vh_inactive_is_low(gb, &inactive_ratio, inactive_lru, &skip);
|
||||
if (skip)
|
||||
goto out;
|
||||
|
||||
if (gb)
|
||||
inactive_ratio = int_sqrt(10 * gb);
|
||||
else
|
||||
@@ -2282,6 +2287,7 @@ static bool inactive_is_low(struct lruvec *lruvec, enum lru_list inactive_lru)
|
||||
|
||||
trace_android_vh_tune_inactive_ratio(&inactive_ratio, is_file_lru(inactive_lru));
|
||||
|
||||
out:
|
||||
return inactive * inactive_ratio < active;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user