diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index d36f5f189264..c494e215601f 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -83,4 +83,5 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_migrate_queued_task); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_find_energy_efficient_cpu); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_set_sugov_sched_attr); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_iowait); -EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_sugov_update); \ No newline at end of file +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_sugov_update); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_sched_setaffinity); diff --git a/include/trace/hooks/sched.h b/include/trace/hooks/sched.h index d91c4d10a84e..82bda911c91e 100644 --- a/include/trace/hooks/sched.h +++ b/include/trace/hooks/sched.h @@ -116,6 +116,9 @@ struct sugov_policy; DECLARE_RESTRICTED_HOOK(android_rvh_set_sugov_update, TP_PROTO(struct sugov_policy *sg_policy, unsigned int next_freq, bool *should_update), TP_ARGS(sg_policy, next_freq, should_update), 1); +DECLARE_RESTRICTED_HOOK(android_rvh_sched_setaffinity, + TP_PROTO(struct task_struct *p, const struct cpumask *in_mask, int *retval), + TP_ARGS(p, in_mask, retval), 1); #else #define trace_android_rvh_select_task_rq_fair(p, prev_cpu, sd_flag, wake_flags, new_cpu) #define trace_android_rvh_select_task_rq_rt(p, prev_cpu, sd_flag, wake_flags, new_cpu) @@ -141,6 +144,7 @@ DECLARE_RESTRICTED_HOOK(android_rvh_set_sugov_update, #define trace_android_vh_set_sugov_sched_attr(attr) #define trace_android_rvh_set_iowait(p, should_iowait_boost) #define trace_android_rvh_set_sugov_update(sg_policy, next_freq, should_update) +#define trace_android_rvh_sched_setaffinity(p, in_mask, retval) #endif #endif /* _TRACE_HOOK_SCHED_H */ /* This part must be outside protection */ diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 9d711c32c177..2e83effd24b2 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -6002,6 +6002,9 @@ long sched_setaffinity(pid_t pid, const struct cpumask *in_mask) goto again; } } + + trace_android_rvh_sched_setaffinity(p, in_mask, &retval); + out_free_new_mask: free_cpumask_var(new_mask); out_free_cpus_allowed: