mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-06 19:08:57 +09:00
ANDROID: sched: Add restricted vendor hooks in CFS scheduler
Add restricted vendor hooks in CFS scheduler class to allow customizations in vendor modules. Bug: 180668820 Change-Id: I69bd90e11220d7607b075a3aa687059deaa60439 Signed-off-by: Pavankumar Kondeti <quic_pkondeti@quicinc.com>
This commit is contained in:
committed by
Shaleen Agrawal
parent
1085eff98a
commit
771633a2e9
@@ -160,3 +160,5 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_replace_next_task_fair);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_build_sched_domains);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_update_topology_flags_workfn);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_sched_balance_rt);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_pick_next_entity);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_check_preempt_wakeup);
|
||||
|
||||
@@ -248,6 +248,16 @@ DECLARE_RESTRICTED_HOOK(android_rvh_sched_balance_rt,
|
||||
TP_PROTO(struct rq *rq, struct task_struct *p, int *done),
|
||||
TP_ARGS(rq, p, done), 1);
|
||||
|
||||
struct cfs_rq;
|
||||
DECLARE_RESTRICTED_HOOK(android_rvh_pick_next_entity,
|
||||
TP_PROTO(struct cfs_rq *cfs_rq, struct sched_entity *curr,
|
||||
struct sched_entity **se),
|
||||
TP_ARGS(cfs_rq, curr, se), 1);
|
||||
|
||||
DECLARE_RESTRICTED_HOOK(android_rvh_check_preempt_wakeup,
|
||||
TP_PROTO(struct rq *rq, struct task_struct *p, bool *preempt),
|
||||
TP_ARGS(rq, p, preempt), 1);
|
||||
|
||||
#endif /* _TRACE_HOOK_SCHED_H */
|
||||
/* This part must be outside protection */
|
||||
#include <trace/define_trace.h>
|
||||
|
||||
@@ -4535,7 +4535,11 @@ static struct sched_entity *
|
||||
pick_next_entity(struct cfs_rq *cfs_rq, struct sched_entity *curr)
|
||||
{
|
||||
struct sched_entity *left = __pick_first_entity(cfs_rq);
|
||||
struct sched_entity *se;
|
||||
struct sched_entity *se = NULL;
|
||||
|
||||
trace_android_rvh_pick_next_entity(cfs_rq, curr, &se);
|
||||
if (se)
|
||||
goto done;
|
||||
|
||||
/*
|
||||
* If curr is set we have to see if its left of the leftmost entity
|
||||
@@ -4577,6 +4581,7 @@ pick_next_entity(struct cfs_rq *cfs_rq, struct sched_entity *curr)
|
||||
se = cfs_rq->last;
|
||||
}
|
||||
|
||||
done:
|
||||
return se;
|
||||
}
|
||||
|
||||
@@ -7213,6 +7218,7 @@ static void check_preempt_wakeup(struct rq *rq, struct task_struct *p, int wake_
|
||||
int next_buddy_marked = 0;
|
||||
int cse_is_idle, pse_is_idle;
|
||||
bool ignore = false;
|
||||
bool preempt = false;
|
||||
|
||||
if (unlikely(se == pse))
|
||||
return;
|
||||
@@ -7259,6 +7265,9 @@ static void check_preempt_wakeup(struct rq *rq, struct task_struct *p, int wake_
|
||||
if (unlikely(p->policy != SCHED_NORMAL) || !sched_feat(WAKEUP_PREEMPTION))
|
||||
return;
|
||||
|
||||
trace_android_rvh_check_preempt_wakeup(rq, p, &preempt);
|
||||
if (preempt)
|
||||
goto preempt;
|
||||
find_matching_se(&se, &pse);
|
||||
BUG_ON(!pse);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user