mirror of
https://github.com/nxp-imx/linux-imx.git
synced 2025-07-08 18:35:20 +02:00
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
d9f1ddef3a
commit
1839b89cb9
|
@ -546,3 +546,4 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cma_alloc_retry);
|
||||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_ksys_umount);
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_ksys_umount);
|
||||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_do_group_exit);
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_do_group_exit);
|
||||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_suitable_migration_target_bypass);
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_suitable_migration_target_bypass);
|
||||||
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_shrink_node_memcgs);
|
||||||
|
|
|
@ -86,6 +86,9 @@ DECLARE_HOOK(android_vh_do_folio_trylock,
|
||||||
TP_PROTO(struct folio *folio, struct rw_semaphore *sem,
|
TP_PROTO(struct folio *folio, struct rw_semaphore *sem,
|
||||||
bool *got_lock, bool *skip),
|
bool *got_lock, bool *skip),
|
||||||
TP_ARGS(folio, sem, got_lock, skip));
|
TP_ARGS(folio, sem, got_lock, skip));
|
||||||
|
DECLARE_HOOK(android_vh_shrink_node_memcgs,
|
||||||
|
TP_PROTO(struct mem_cgroup *memcg, bool *skip),
|
||||||
|
TP_ARGS(memcg, skip));
|
||||||
#endif /* _TRACE_HOOK_VMSCAN_H */
|
#endif /* _TRACE_HOOK_VMSCAN_H */
|
||||||
/* This part must be outside protection */
|
/* This part must be outside protection */
|
||||||
#include <trace/define_trace.h>
|
#include <trace/define_trace.h>
|
||||||
|
|
|
@ -6626,6 +6626,7 @@ static void shrink_node_memcgs(pg_data_t *pgdat, struct scan_control *sc)
|
||||||
struct lruvec *lruvec = mem_cgroup_lruvec(memcg, pgdat);
|
struct lruvec *lruvec = mem_cgroup_lruvec(memcg, pgdat);
|
||||||
unsigned long reclaimed;
|
unsigned long reclaimed;
|
||||||
unsigned long scanned;
|
unsigned long scanned;
|
||||||
|
bool skip = false;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This loop can become CPU-bound when target memcgs
|
* This loop can become CPU-bound when target memcgs
|
||||||
|
@ -6635,6 +6636,10 @@ static void shrink_node_memcgs(pg_data_t *pgdat, struct scan_control *sc)
|
||||||
*/
|
*/
|
||||||
cond_resched();
|
cond_resched();
|
||||||
|
|
||||||
|
trace_android_vh_shrink_node_memcgs(memcg, &skip);
|
||||||
|
if (skip)
|
||||||
|
continue;
|
||||||
|
|
||||||
mem_cgroup_calculate_protection(target_memcg, memcg);
|
mem_cgroup_calculate_protection(target_memcg, memcg);
|
||||||
|
|
||||||
if (mem_cgroup_below_min(target_memcg, memcg)) {
|
if (mem_cgroup_below_min(target_memcg, memcg)) {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user