diff options
author | Rick Yiu <rickyiu@google.com> | 2023-12-07 07:01:52 +0000 |
---|---|---|
committer | Rick Yiu <rickyiu@google.com> | 2023-12-07 07:01:52 +0000 |
commit | d0d3d81824357800e0b7feb4abaf0a7fbd550b9d (patch) | |
tree | 592ded77f059e76030e6159c20882310e27753da | |
parent | d3afdead6593e3ad45b8c2959c85d20122b35014 (diff) | |
download | gs-d0d3d81824357800e0b7feb4abaf0a7fbd550b9d.tar.gz |
vh: sched: Use trace_android_rvh_set_user_nice_locked
Use locked version to avoid race condition.
Bug: 300872872
Change-Id: I6c78523829f0d1b25d020c798732d29595978198
Signed-off-by: Rick Yiu <rickyiu@google.com>
-rw-r--r-- | drivers/soc/google/vh/kernel/sched/fair.c | 12 | ||||
-rw-r--r-- | drivers/soc/google/vh/kernel/sched/init.c | 6 |
2 files changed, 5 insertions, 13 deletions
diff --git a/drivers/soc/google/vh/kernel/sched/fair.c b/drivers/soc/google/vh/kernel/sched/fair.c index 45431bd45ab6..9cec88f603a9 100644 --- a/drivers/soc/google/vh/kernel/sched/fair.c +++ b/drivers/soc/google/vh/kernel/sched/fair.c @@ -2514,22 +2514,16 @@ out: prev_cpu, *target_cpu); } -void rvh_set_user_nice_pixel_mod(void *data, struct task_struct *p, long *nice, bool *allowed) +void rvh_set_user_nice_locked_pixel_mod(void *data, struct task_struct *p, long *nice) { struct vendor_task_struct *vp; unsigned long flags; - struct rq_flags rf; - struct rq *rq; if (!vendor_sched_boost_adpf_prio) return; - rq = task_rq_lock(p, &rf); - - if (p->prio < MAX_RT_PRIO) { - task_rq_unlock(rq, p, &rf); + if (p->prio < MAX_RT_PRIO) return; - } vp = get_vendor_task_struct(p); if (get_uclamp_fork_reset(p, false)) { @@ -2542,8 +2536,6 @@ void rvh_set_user_nice_pixel_mod(void *data, struct task_struct *p, long *nice, prio_changed(p, vp->orig_prio, p->prio); } } - - task_rq_unlock(rq, p, &rf); } void rvh_setscheduler_pixel_mod(void *data, struct task_struct *p) diff --git a/drivers/soc/google/vh/kernel/sched/init.c b/drivers/soc/google/vh/kernel/sched/init.c index f4675083af6f..557b6bbf3dd2 100644 --- a/drivers/soc/google/vh/kernel/sched/init.c +++ b/drivers/soc/google/vh/kernel/sched/init.c @@ -93,8 +93,7 @@ extern void rvh_remove_entity_load_avg_pixel_mod(void *data, struct cfs_rq *cfs_ struct sched_entity *se); extern void rvh_update_blocked_fair_pixel_mod(void *data, struct rq *rq); #endif -extern void rvh_set_user_nice_pixel_mod(void *data, struct task_struct *p, long *nice, - bool *allowed); +extern void rvh_set_user_nice_locked_pixel_mod(void *data, struct task_struct *p, long *nice); extern void rvh_setscheduler_pixel_mod(void *data, struct task_struct *p); extern void rvh_update_misfit_status_pixel_mod(void *data, struct task_struct *p, struct rq *rq, bool *need_update); @@ -356,7 +355,8 @@ static int vh_sched_init(void) if (ret) return ret; - ret = register_trace_android_rvh_set_user_nice(rvh_set_user_nice_pixel_mod, NULL); + ret = register_trace_android_rvh_set_user_nice_locked(rvh_set_user_nice_locked_pixel_mod, + NULL); if (ret) return ret; |