mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 02:21:52 +09:00
ANDROID: vendor_hooks: Skip pages with high memory pressure in shrink_active_list
The android_vh_folio_referenced_check_bypass hook reverse-maps and skips pages with high memory pressure in shrink_active_list, preferring to recycle them. This helps reduce memory pressure and improve system performance under high load. Bug: 404067669 Change-Id: Ic10edcef9761df774d6cf18544e7c044bf78d3ed Signed-off-by: Marcus Ma <maminghui5@xiaomi.corp-partner.google.com>
This commit is contained in:
committed by
Treehugger Robot
parent
da6a42c111
commit
2f4537ba6c
@@ -474,3 +474,4 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mmc_gpio_cd_irqt);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_trigger_vendor_lmk_kill);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_filemap_map_pages_range);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_vprintk_store);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_folio_referenced_check_bypass);
|
||||
|
||||
@@ -79,6 +79,9 @@ DECLARE_HOOK(android_vh_do_folio_trylock,
|
||||
DECLARE_HOOK(android_vh_page_referenced_check_bypass,
|
||||
TP_PROTO(struct folio *folio, unsigned long nr_to_scan, int lru, bool *bypass),
|
||||
TP_ARGS(folio, nr_to_scan, lru, bypass));
|
||||
DECLARE_HOOK(android_vh_folio_referenced_check_bypass,
|
||||
TP_PROTO(struct folio *folio, s8 priority, unsigned long nr_to_scan, int lru, bool *bypass),
|
||||
TP_ARGS(folio, priority, nr_to_scan, lru, bypass));
|
||||
DECLARE_HOOK(android_vh_should_memcg_bypass,
|
||||
TP_PROTO(struct mem_cgroup *memcg, int priority, bool *bypass),
|
||||
TP_ARGS(memcg, priority, bypass));
|
||||
|
||||
@@ -2709,6 +2709,8 @@ static void shrink_active_list(unsigned long nr_to_scan,
|
||||
}
|
||||
|
||||
trace_android_vh_page_referenced_check_bypass(folio, nr_to_scan, lru, &bypass);
|
||||
trace_android_vh_folio_referenced_check_bypass(folio, sc->priority,
|
||||
nr_to_scan, lru, &bypass);
|
||||
if (bypass)
|
||||
goto skip_folio_referenced;
|
||||
trace_android_vh_folio_trylock_set(folio);
|
||||
|
||||
Reference in New Issue
Block a user