ANDROID: sched: Add vendor hook for uclamp_eff_value
Vendor may have their own behavior for determing uclamp value. Bug: 170507972 Signed-off-by: Rick Yiu <rickyiu@google.com> Change-Id: I33f8adc7240f6a44f16446421536047db2794989
This commit is contained in:
@@ -167,3 +167,4 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ufs_send_command);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ufs_compl_command);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_do_wake_up_sync);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_set_wake_flags);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_uclamp_eff_value);
|
||||
|
@@ -268,6 +268,13 @@ DECLARE_HOOK(android_vh_set_wake_flags,
|
||||
TP_PROTO(int *wake_flags, unsigned int *mode),
|
||||
TP_ARGS(wake_flags, mode));
|
||||
|
||||
enum uclamp_id;
|
||||
struct uclamp_se;
|
||||
DECLARE_RESTRICTED_HOOK(android_rvh_uclamp_eff_value,
|
||||
TP_PROTO(struct task_struct *p, enum uclamp_id clamp_id,
|
||||
struct uclamp_se *uclamp_default, unsigned long *ret),
|
||||
TP_ARGS(p, clamp_id, uclamp_default, ret), 1);
|
||||
|
||||
/* macro versions of hooks are no longer required */
|
||||
|
||||
#endif /* _TRACE_HOOK_SCHED_H */
|
||||
|
@@ -1144,6 +1144,12 @@ unsigned long uclamp_eff_value(struct task_struct *p, enum uclamp_id clamp_id)
|
||||
{
|
||||
struct uclamp_se uc_eff;
|
||||
|
||||
unsigned long ret = ULONG_MAX;
|
||||
|
||||
trace_android_rvh_uclamp_eff_value(p, clamp_id, &uclamp_default[clamp_id], &ret);
|
||||
if (ret != ULONG_MAX)
|
||||
return ret;
|
||||
|
||||
/* Task currently refcounted: use back-annotated (effective) value */
|
||||
if (p->uclamp[clamp_id].active)
|
||||
return (unsigned long)p->uclamp[clamp_id].value;
|
||||
|
Reference in New Issue
Block a user