ANDROID: vendor_hooks: Add hook in shrink_node_memcgs
Add vendor hook in shrink_node_memcgs to adjust whether to skip memory reclamation of memcg. Bug: 226482420 Signed-off-by: Liujie Xie <xieliujie@oppo.com> Change-Id: I925856353e63c5a821027de4f8476c833e21b982
This commit is contained in:
parent
a3f112353c
commit
95380146ce
@ -393,3 +393,4 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_thread_release);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_has_work_ilocked);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_read_done);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_handle_tlb_conf);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_shrink_node_memcgs);
|
||||
|
@ -28,7 +28,9 @@ DECLARE_RESTRICTED_HOOK(android_rvh_set_balance_anon_file_reclaim,
|
||||
DECLARE_HOOK(android_vh_page_referenced_check_bypass,
|
||||
TP_PROTO(struct page *page, unsigned long nr_to_scan, int lru, bool *bypass),
|
||||
TP_ARGS(page, nr_to_scan, lru, bypass));
|
||||
|
||||
DECLARE_HOOK(android_vh_shrink_node_memcgs,
|
||||
TP_PROTO(struct mem_cgroup *memcg, bool *skip),
|
||||
TP_ARGS(memcg, skip));
|
||||
#endif /* _TRACE_HOOK_VMSCAN_H */
|
||||
/* This part must be outside protection */
|
||||
#include <trace/define_trace.h>
|
||||
|
@ -2699,6 +2699,7 @@ static void shrink_node_memcgs(pg_data_t *pgdat, struct scan_control *sc)
|
||||
struct lruvec *lruvec = mem_cgroup_lruvec(memcg, pgdat);
|
||||
unsigned long reclaimed;
|
||||
unsigned long scanned;
|
||||
bool skip = false;
|
||||
|
||||
/*
|
||||
* This loop can become CPU-bound when target memcgs
|
||||
@ -2708,6 +2709,10 @@ static void shrink_node_memcgs(pg_data_t *pgdat, struct scan_control *sc)
|
||||
*/
|
||||
cond_resched();
|
||||
|
||||
trace_android_vh_shrink_node_memcgs(memcg, &skip);
|
||||
if (skip)
|
||||
continue;
|
||||
|
||||
mem_cgroup_calculate_protection(target_memcg, memcg);
|
||||
|
||||
if (mem_cgroup_below_min(memcg)) {
|
||||
|
Loading…
Reference in New Issue
Block a user