diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index c8e6ecf245b8..f179ebe2cdbd 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -272,6 +272,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_check_mmap_file); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_check_file_open); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_check_bpf_syscall); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_cpus_allowed_ptr_locked); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_cpus_allowed_by_task); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_rto_next_cpu); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_is_cpu_allowed); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_get_nohz_timer_target); diff --git a/include/trace/hooks/sched.h b/include/trace/hooks/sched.h index 8bb349b30fc7..1de2e505a767 100644 --- a/include/trace/hooks/sched.h +++ b/include/trace/hooks/sched.h @@ -319,6 +319,11 @@ DECLARE_RESTRICTED_HOOK(android_rvh_set_cpus_allowed_ptr_locked, unsigned int *dest_cpu), TP_ARGS(cpu_valid_mask, new_mask, dest_cpu), 1); +DECLARE_RESTRICTED_HOOK(android_rvh_set_cpus_allowed_by_task, + TP_PROTO(const struct cpumask *cpu_valid_mask, const struct cpumask *new_mask, + struct task_struct *p, unsigned int *dest_cpu), + TP_ARGS(cpu_valid_mask, new_mask, p, dest_cpu), 1); + DECLARE_RESTRICTED_HOOK(android_rvh_do_sched_yield, TP_PROTO(struct rq *rq), TP_ARGS(rq), 1); diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 0ce14fb52c4b..af56ba463351 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -2868,6 +2868,7 @@ static int __set_cpus_allowed_ptr_locked(struct task_struct *p, */ dest_cpu = cpumask_any_and_distribute(cpu_valid_mask, new_mask); trace_android_rvh_set_cpus_allowed_ptr_locked(cpu_valid_mask, new_mask, &dest_cpu); + trace_android_rvh_set_cpus_allowed_by_task(cpu_valid_mask, new_mask, p, &dest_cpu); if (dest_cpu >= nr_cpu_ids) { ret = -EINVAL;