From e27ad1d21124c25259911574775fafb5f60bb53e Mon Sep 17 00:00:00 2001 From: liuhailong Date: Tue, 10 May 2022 16:58:17 +0800 Subject: [PATCH] ANDROID: signal: Add vendor hook for memory reaping Since commit 3bcdb496f496 ("ANDROID: signal: Add vendor hook for memory reaping"), but *current* does not need. Add another hook here to determine killed process need be reaped. (e.g. get_mm_counter) Bug: 232062955 Change-Id: Ide13d3a2e8c199b063f41e071a2bf2fd60a91b04 Signed-off-by: liuhailong --- drivers/android/vendor_hooks.c | 1 + include/trace/hooks/signal.h | 3 +++ kernel/signal.c | 1 + 3 files changed, 5 insertions(+) diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index eb50db428e8c..1ca42b0dfd4d 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -99,6 +99,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_restore_priority); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_wakeup_ilocked); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_do_send_sig_info); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_process_killed); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_killed_process); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_init); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_wake); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_write_finished); diff --git a/include/trace/hooks/signal.h b/include/trace/hooks/signal.h index a0db2e8cf77d..ee36ea1de283 100644 --- a/include/trace/hooks/signal.h +++ b/include/trace/hooks/signal.h @@ -15,6 +15,9 @@ DECLARE_HOOK(android_vh_do_send_sig_info, DECLARE_HOOK(android_vh_process_killed, TP_PROTO(struct task_struct *task, bool *reap), TP_ARGS(task, reap)); +DECLARE_HOOK(android_vh_killed_process, + TP_PROTO(struct task_struct *killer, struct task_struct *dst, bool *reap), + TP_ARGS(killer, dst, reap)); #endif /* _TRACE_HOOK_SIGNAL_H */ /* This part must be outside protection */ #include diff --git a/kernel/signal.c b/kernel/signal.c index 7814560f8637..6fff4a9788ac 100644 --- a/kernel/signal.c +++ b/kernel/signal.c @@ -1420,6 +1420,7 @@ int group_send_sig_info(int sig, struct kernel_siginfo *info, bool reap = false; trace_android_vh_process_killed(current, &reap); + trace_android_vh_killed_process(current, p, &reap); if (reap) add_to_oom_reaper(p); }