From dc524f0ad6134cb6539ba7d15599696c84ea1edb Mon Sep 17 00:00:00 2001 From: Qixia Yang Date: Mon, 24 Mar 2025 17:17:44 +0800 Subject: [PATCH] ANDROID: vendor_hooks: Add hooks for exiting control Add hooks at process exiting routines so that oems can control these procedures. One possible benifit is the peak of system load can be shaved and load can be more smooth when a large number of threads is killed once upon a time, while a sudden peak of system load can probably lead to user junk issues. Bug: 296493318 Change-Id: Ied4cc968e45baa39f1b79e8c7dce75cf6b8db55d Signed-off-by: Qixia Yang --- drivers/android/vendor_hooks.c | 1 + include/trace/hooks/dtask.h | 5 +++++ kernel/exit.c | 2 ++ 3 files changed, 8 insertions(+) diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index 8dfd45a3643f..fdd02b764d5f 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -422,3 +422,4 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_alloc_pages_reclaim_bypass); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_alloc_pages_failure_bypass); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_save_vmalloc_stack); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_show_stack_hash); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_exit_check); diff --git a/include/trace/hooks/dtask.h b/include/trace/hooks/dtask.h index 0ada24dc250a..0aae26ffd5a6 100644 --- a/include/trace/hooks/dtask.h +++ b/include/trace/hooks/dtask.h @@ -130,6 +130,11 @@ DECLARE_HOOK(android_vh_record_rwsem_lock_starttime, DECLARE_HOOK(android_vh_record_pcpu_rwsem_starttime, TP_PROTO(struct percpu_rw_semaphore *sem, unsigned long settime_jiffies), TP_ARGS(sem, settime_jiffies)); + +DECLARE_HOOK(android_vh_exit_check, + TP_PROTO(struct task_struct *p), + TP_ARGS(p)); #endif /* _TRACE_HOOK_DTASK_H */ + /* This part must be outside protection */ #include diff --git a/kernel/exit.c b/kernel/exit.c index 2762415ec538..8325eda1ef41 100644 --- a/kernel/exit.c +++ b/kernel/exit.c @@ -75,6 +75,7 @@ #include #include +#include #include #include "exit.h" @@ -897,6 +898,7 @@ void __noreturn do_exit(long code) io_uring_files_cancel(); exit_signals(tsk); /* sets PF_EXITING */ + trace_android_vh_exit_check(current); seccomp_filter_release(tsk);