ANDROID: vendor_hooks: add hook in create_worker()

This hook is used to apply specific scheduling policies to worker->task

Bug: 360039558
Change-Id: I4fb79b23bced1c58a6fa5f4d0c19850f11d56e0f
Signed-off-by: Yang Yang <yang.yang@vivo.com>
This commit is contained in:
Yang Yang 2024-08-14 18:37:22 +08:00 committed by Treehugger Robot
parent aeaa3ba902
commit 2041959e88
3 changed files with 6 additions and 0 deletions

View File

@ -127,6 +127,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cpu_idle_exit);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mpam_set);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_wq_lockup_pool);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_alloc_and_link_pwqs);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_create_worker);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ipi_stop);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_sysrq_crash);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_printk_hotplug);

View File

@ -10,6 +10,10 @@
* Following tracepoints are not exported in tracefs and provide a
* mechanism for vendor modules to hook and extend functionality
*/
DECLARE_RESTRICTED_HOOK(android_rvh_create_worker,
TP_PROTO(struct task_struct *p, struct workqueue_attrs *attrs),
TP_ARGS(p, attrs), 1);
DECLARE_HOOK(android_vh_wq_lockup_pool,
TP_PROTO(int cpu, unsigned long pool_ts),
TP_ARGS(cpu, pool_ts));

View File

@ -2216,6 +2216,7 @@ static struct worker *create_worker(struct worker_pool *pool)
}
set_user_nice(worker->task, pool->attrs->nice);
trace_android_rvh_create_worker(worker->task, pool->attrs);
kthread_bind_mask(worker->task, pool_allowed_cpus(pool));
/* successful, attach the worker to the pool */