diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index a22dae57cfe2..5bba711af63e 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -312,3 +312,5 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_fill_ext_fmtdesc); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_clear_mask_adjust); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_scmi_timeout_sync); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_find_new_ilb); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_force_compatible_pre); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_force_compatible_post); diff --git a/include/trace/hooks/sched.h b/include/trace/hooks/sched.h index afac1522e0c6..622454f6f8c8 100644 --- a/include/trace/hooks/sched.h +++ b/include/trace/hooks/sched.h @@ -370,6 +370,14 @@ DECLARE_RESTRICTED_HOOK(android_rvh_find_new_ilb, TP_PROTO(struct cpumask *nohz_idle_cpus_mask, int *ilb), TP_ARGS(nohz_idle_cpus_mask, ilb), 1); +DECLARE_HOOK(android_vh_force_compatible_pre, + TP_PROTO(void *unused), + TP_ARGS(unused)); + +DECLARE_HOOK(android_vh_force_compatible_post, + TP_PROTO(void *unused), + TP_ARGS(unused)); + /* macro versions of hooks are no longer required */ #endif /* _TRACE_HOOK_SCHED_H */ diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 3b8cf332c492..ff100c24fe66 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -2103,6 +2103,7 @@ void force_compatible_cpus_allowed_ptr(struct task_struct *p) * offlining of the chosen destination CPU, so take the hotplug * lock to ensure that the migration succeeds. */ + trace_android_vh_force_compatible_pre(NULL); cpus_read_lock(); if (!cpumask_available(new_mask)) goto out_set_mask; @@ -2127,6 +2128,7 @@ out_set_mask: WARN_ON(set_cpus_allowed_ptr(p, override_mask)); out_free_mask: cpus_read_unlock(); + trace_android_vh_force_compatible_post(NULL); free_cpumask_var(new_mask); }