mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 10:31:46 +09:00
ANDROID: sched: Add vendor hook for util-update related functions
Vendor may have the need to implement their own util tracking. Bug: 297343949 Signed-off-by: Rick Yiu <rickyiu@google.com> Change-Id: I973902e6ff82a85ecd029ac5a78692d629df1ebe
This commit is contained in:
committed by
Treehugger Robot
parent
e08c5de06e
commit
6d97f75abc
@@ -402,6 +402,26 @@ DECLARE_RESTRICTED_HOOK(android_rvh_set_iowait,
|
|||||||
TP_PROTO(struct task_struct *p, struct rq *rq, int *should_iowait_boost),
|
TP_PROTO(struct task_struct *p, struct rq *rq, int *should_iowait_boost),
|
||||||
TP_ARGS(p, rq, should_iowait_boost), 1);
|
TP_ARGS(p, rq, should_iowait_boost), 1);
|
||||||
|
|
||||||
|
DECLARE_RESTRICTED_HOOK(android_rvh_attach_entity_load_avg,
|
||||||
|
TP_PROTO(struct cfs_rq *cfs_rq, struct sched_entity *se),
|
||||||
|
TP_ARGS(cfs_rq, se), 1);
|
||||||
|
|
||||||
|
DECLARE_RESTRICTED_HOOK(android_rvh_detach_entity_load_avg,
|
||||||
|
TP_PROTO(struct cfs_rq *cfs_rq, struct sched_entity *se),
|
||||||
|
TP_ARGS(cfs_rq, se), 1);
|
||||||
|
|
||||||
|
DECLARE_RESTRICTED_HOOK(android_rvh_update_load_avg,
|
||||||
|
TP_PROTO(u64 now, struct cfs_rq *cfs_rq, struct sched_entity *se),
|
||||||
|
TP_ARGS(now, cfs_rq, se), 1);
|
||||||
|
|
||||||
|
DECLARE_RESTRICTED_HOOK(android_rvh_remove_entity_load_avg,
|
||||||
|
TP_PROTO(struct cfs_rq *cfs_rq, struct sched_entity *se),
|
||||||
|
TP_ARGS(cfs_rq, se), 1);
|
||||||
|
|
||||||
|
DECLARE_RESTRICTED_HOOK(android_rvh_update_blocked_fair,
|
||||||
|
TP_PROTO(struct rq *rq),
|
||||||
|
TP_ARGS(rq), 1);
|
||||||
|
|
||||||
#endif /* _TRACE_HOOK_SCHED_H */
|
#endif /* _TRACE_HOOK_SCHED_H */
|
||||||
/* This part must be outside protection */
|
/* This part must be outside protection */
|
||||||
#include <trace/define_trace.h>
|
#include <trace/define_trace.h>
|
||||||
|
|||||||
@@ -4129,6 +4129,8 @@ static void attach_entity_load_avg(struct cfs_rq *cfs_rq, struct sched_entity *s
|
|||||||
else
|
else
|
||||||
se->avg.load_sum = 1;
|
se->avg.load_sum = 1;
|
||||||
|
|
||||||
|
trace_android_rvh_attach_entity_load_avg(cfs_rq, se);
|
||||||
|
|
||||||
enqueue_load_avg(cfs_rq, se);
|
enqueue_load_avg(cfs_rq, se);
|
||||||
cfs_rq->avg.util_avg += se->avg.util_avg;
|
cfs_rq->avg.util_avg += se->avg.util_avg;
|
||||||
cfs_rq->avg.util_sum += se->avg.util_sum;
|
cfs_rq->avg.util_sum += se->avg.util_sum;
|
||||||
@@ -4152,6 +4154,8 @@ static void attach_entity_load_avg(struct cfs_rq *cfs_rq, struct sched_entity *s
|
|||||||
*/
|
*/
|
||||||
static void detach_entity_load_avg(struct cfs_rq *cfs_rq, struct sched_entity *se)
|
static void detach_entity_load_avg(struct cfs_rq *cfs_rq, struct sched_entity *se)
|
||||||
{
|
{
|
||||||
|
trace_android_rvh_detach_entity_load_avg(cfs_rq, se);
|
||||||
|
|
||||||
dequeue_load_avg(cfs_rq, se);
|
dequeue_load_avg(cfs_rq, se);
|
||||||
sub_positive(&cfs_rq->avg.util_avg, se->avg.util_avg);
|
sub_positive(&cfs_rq->avg.util_avg, se->avg.util_avg);
|
||||||
sub_positive(&cfs_rq->avg.util_sum, se->avg.util_sum);
|
sub_positive(&cfs_rq->avg.util_sum, se->avg.util_sum);
|
||||||
@@ -4196,6 +4200,8 @@ static inline void update_load_avg(struct cfs_rq *cfs_rq, struct sched_entity *s
|
|||||||
decayed = update_cfs_rq_load_avg(now, cfs_rq);
|
decayed = update_cfs_rq_load_avg(now, cfs_rq);
|
||||||
decayed |= propagate_entity_load_avg(se);
|
decayed |= propagate_entity_load_avg(se);
|
||||||
|
|
||||||
|
trace_android_rvh_update_load_avg(now, cfs_rq, se);
|
||||||
|
|
||||||
if (!se->avg.last_update_time && (flags & DO_ATTACH)) {
|
if (!se->avg.last_update_time && (flags & DO_ATTACH)) {
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -4253,6 +4259,8 @@ static void remove_entity_load_avg(struct sched_entity *se)
|
|||||||
|
|
||||||
sync_entity_load_avg(se);
|
sync_entity_load_avg(se);
|
||||||
|
|
||||||
|
trace_android_rvh_remove_entity_load_avg(cfs_rq, se);
|
||||||
|
|
||||||
raw_spin_lock_irqsave(&cfs_rq->removed.lock, flags);
|
raw_spin_lock_irqsave(&cfs_rq->removed.lock, flags);
|
||||||
++cfs_rq->removed.nr;
|
++cfs_rq->removed.nr;
|
||||||
cfs_rq->removed.util_avg += se->avg.util_avg;
|
cfs_rq->removed.util_avg += se->avg.util_avg;
|
||||||
@@ -8756,6 +8764,8 @@ static bool __update_blocked_fair(struct rq *rq, bool *done)
|
|||||||
bool decayed = false;
|
bool decayed = false;
|
||||||
int cpu = cpu_of(rq);
|
int cpu = cpu_of(rq);
|
||||||
|
|
||||||
|
trace_android_rvh_update_blocked_fair(rq);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Iterates the task_group tree in a bottom up fashion, see
|
* Iterates the task_group tree in a bottom up fashion, see
|
||||||
* list_add_leaf_cfs_rq() for details.
|
* list_add_leaf_cfs_rq() for details.
|
||||||
|
|||||||
@@ -102,3 +102,8 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mmput);
|
|||||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_uclamp_validate);
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_uclamp_validate);
|
||||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_set_sugov_sched_attr);
|
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_iowait);
|
||||||
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_attach_entity_load_avg);
|
||||||
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_detach_entity_load_avg);
|
||||||
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_update_load_avg);
|
||||||
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_remove_entity_load_avg);
|
||||||
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_update_blocked_fair);
|
||||||
|
|||||||
Reference in New Issue
Block a user