From 2bb462a3af31e3309642b4fa349fd63f060f069a Mon Sep 17 00:00:00 2001 From: Jing-Ting Wu Date: Fri, 14 May 2021 10:48:33 +0800 Subject: [PATCH] ANDROID: cgroup: add vendor hook to cgroup .attach() Add a vendor hook when a set of tasks change the cgroups in the controller for performance tuning. Bug: 187972571 Signed-off-by: Jing-Ting Wu Change-Id: If0ea3d089e077a4650507c69b6e60952d102fa1d --- drivers/android/vendor_hooks.c | 1 + include/trace/hooks/cgroup.h | 6 ++++++ kernel/cgroup/cgroup.c | 1 + 3 files changed, 8 insertions(+) diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index 92064e1ce4a3..ed0386e4520b 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -276,3 +276,4 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_selinux_is_initialized); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_tune_inactive_ratio); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_update_topology_flags_workfn); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_of_i2c_get_board_info); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cgroup_attach); diff --git a/include/trace/hooks/cgroup.h b/include/trace/hooks/cgroup.h index 7eda7678debc..ca9f7020a27c 100644 --- a/include/trace/hooks/cgroup.h +++ b/include/trace/hooks/cgroup.h @@ -18,6 +18,12 @@ DECLARE_RESTRICTED_HOOK(android_rvh_cpuset_fork, DECLARE_RESTRICTED_HOOK(android_rvh_cgroup_force_kthread_migration, TP_PROTO(struct task_struct *tsk, struct cgroup *dst_cgrp, bool *force_migration), TP_ARGS(tsk, dst_cgrp, force_migration), 1); + +struct cgroup_subsys; +struct cgroup_taskset; +DECLARE_HOOK(android_vh_cgroup_attach, + TP_PROTO(struct cgroup_subsys *ss, struct cgroup_taskset *tset), + TP_ARGS(ss, tset)) #endif #include diff --git a/kernel/cgroup/cgroup.c b/kernel/cgroup/cgroup.c index f473be99ba43..66981dfd3d7c 100644 --- a/kernel/cgroup/cgroup.c +++ b/kernel/cgroup/cgroup.c @@ -2452,6 +2452,7 @@ static int cgroup_migrate_execute(struct cgroup_mgctx *mgctx) do_each_subsys_mask(ss, ssid, mgctx->ss_mask) { if (ss->attach) { tset->ssid = ssid; + trace_android_vh_cgroup_attach(ss, tset); ss->attach(tset); } } while_each_subsys_mask();