diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index 03be03e0e479..ca34ae9a2a09 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -37,6 +37,7 @@ #include #include #include +#include /* * Export tracepoints that act as a bare tracehook (ie: have no trace event @@ -99,3 +100,5 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_timer_calc_index); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_is_fpsimd_save); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_sched_show_task); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ftrace_format_check); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mem_cgroup_free); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mem_cgroup_alloc); diff --git a/include/trace/hooks/mm.h b/include/trace/hooks/mm.h index b3912a990960..2dcce0029af4 100644 --- a/include/trace/hooks/mm.h +++ b/include/trace/hooks/mm.h @@ -21,6 +21,14 @@ DECLARE_RESTRICTED_HOOK(android_rvh_set_readahead_gfp_mask, TP_ARGS(flags), 1); */ +struct mem_cgroup; +DECLARE_HOOK(android_vh_mem_cgroup_alloc, + TP_PROTO(struct mem_cgroup *memcg), + TP_ARGS(memcg)); +DECLARE_HOOK(android_vh_mem_cgroup_free, + TP_PROTO(struct mem_cgroup *memcg), + TP_ARGS(memcg)); + #endif /* _TRACE_HOOK_MM_H */ /* This part must be outside protection */ diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 7845c64a2c57..cea51fe5a149 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -72,6 +72,7 @@ #include #include +#include struct cgroup_subsys memory_cgrp_subsys __read_mostly; EXPORT_SYMBOL(memory_cgrp_subsys); @@ -3458,6 +3459,7 @@ static void __mem_cgroup_free(struct mem_cgroup *memcg) { int node; + trace_android_vh_mem_cgroup_free(memcg); obj_cgroup_put(memcg->orig_objcg); for_each_node(node) @@ -3542,6 +3544,7 @@ static struct mem_cgroup *mem_cgroup_alloc(struct mem_cgroup *parent) memcg->deferred_split_queue.split_queue_len = 0; #endif lru_gen_init_memcg(memcg); + trace_android_vh_mem_cgroup_alloc(memcg); return memcg; fail: mem_cgroup_id_remove(memcg);