ANDROID: vendor_hooks: add hook in __alloc_workqueue()
This hook is used to apply specific flags/max_active to workqueue. It can solve some priority inversion cases. Bug: 417083554 Change-Id: I7f8faf6652a5e3f12c44e97df0d665a39d2e9540 Signed-off-by: jiayingrui <jiayingrui@oppo.com>
This commit is contained in:
committed by
Treehugger Robot
parent
c7b71fcb6f
commit
b62718ba86
@@ -105,6 +105,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cpu_idle_exit);
|
|||||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mpam_set);
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mpam_set);
|
||||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_wq_lockup_pool);
|
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_alloc_and_link_pwqs);
|
||||||
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_alloc_workqueue);
|
||||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_create_worker);
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_create_worker);
|
||||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ipi_stop);
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ipi_stop);
|
||||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_sysrq_crash);
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_sysrq_crash);
|
||||||
|
|||||||
@@ -10,6 +10,10 @@
|
|||||||
* Following tracepoints are not exported in tracefs and provide a
|
* Following tracepoints are not exported in tracefs and provide a
|
||||||
* mechanism for vendor modules to hook and extend functionality
|
* mechanism for vendor modules to hook and extend functionality
|
||||||
*/
|
*/
|
||||||
|
DECLARE_RESTRICTED_HOOK(android_rvh_alloc_workqueue,
|
||||||
|
TP_PROTO(struct workqueue_struct *wq, unsigned int *flags, int *max_active),
|
||||||
|
TP_ARGS(wq, flags, max_active), 1);
|
||||||
|
|
||||||
DECLARE_RESTRICTED_HOOK(android_rvh_create_worker,
|
DECLARE_RESTRICTED_HOOK(android_rvh_create_worker,
|
||||||
TP_PROTO(struct task_struct *p, struct workqueue_attrs *attrs),
|
TP_PROTO(struct task_struct *p, struct workqueue_attrs *attrs),
|
||||||
TP_ARGS(p, attrs), 1);
|
TP_ARGS(p, attrs), 1);
|
||||||
|
|||||||
@@ -5707,6 +5707,7 @@ static struct workqueue_struct *__alloc_workqueue(const char *fmt,
|
|||||||
max_active = wq_clamp_max_active(max_active, flags, wq->name);
|
max_active = wq_clamp_max_active(max_active, flags, wq->name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
trace_android_rvh_alloc_workqueue(wq, &flags, &max_active);
|
||||||
/* init wq */
|
/* init wq */
|
||||||
wq->flags = flags;
|
wq->flags = flags;
|
||||||
wq->max_active = max_active;
|
wq->max_active = max_active;
|
||||||
|
|||||||
Reference in New Issue
Block a user