From 60e7fe8dbade9e4da61cc3993daca41c994d65ce Mon Sep 17 00:00:00 2001 From: Shaleen Agrawal Date: Mon, 13 Sep 2021 15:40:15 -0700 Subject: [PATCH] sched: walt: Improve the scheduler This change is for general scheduler improvement. Change-Id: I509129b041185e8f6b83eb586b7ce542889ebe5d Signed-off-by: Shaleen Agrawal --- kernel/sched/walt/walt.c | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/kernel/sched/walt/walt.c b/kernel/sched/walt/walt.c index da5e617d7482..bad638335220 100644 --- a/kernel/sched/walt/walt.c +++ b/kernel/sched/walt/walt.c @@ -2179,6 +2179,19 @@ static void walt_update_task_ravg(struct task_struct *p, struct rq *rq, int even run_walt_irq_work(old_window_start, rq); } +static void __sched_fork_init(struct task_struct *p) +{ + struct walt_task_struct *wts = (struct walt_task_struct *) p->android_vendor_data1; + + wts->last_sleep_ts = 0; + wts->wake_up_idle = false; + wts->boost = 0; + wts->boost_expires = 0; + wts->boost_period = false; + wts->low_latency = false; + wts->iowaited = false; +} + static void init_new_task_load(struct task_struct *p) { int i; @@ -2230,6 +2243,7 @@ static void init_new_task_load(struct task_struct *p) wts->sum_exec_snapshot = 0; wts->total_exec = 0; wts->mvp_prio = WALT_NOT_MVP; + __sched_fork_init(p); } static void init_existing_task_load(struct task_struct *p) @@ -3696,6 +3710,7 @@ static void android_rvh_wake_up_new_task(void *unused, struct task_struct *new) { if (unlikely(walt_disabled)) return; + init_new_task_load(new); add_new_task_to_grp(new); } @@ -3768,13 +3783,6 @@ static void android_rvh_set_task_cpu(void *unused, struct task_struct *p, unsign fixup_busy_time(p, (int) new_cpu); } -static void android_rvh_sched_fork(void *unused, struct task_struct *p) -{ - if (unlikely(walt_disabled)) - return; - init_new_task_load(p); -} - static void android_rvh_new_task_stats(void *unused, struct task_struct *p) { if (unlikely(walt_disabled)) @@ -4083,17 +4091,10 @@ static void android_rvh_sched_setaffinity(void *unused, struct task_struct *p, static void android_rvh_sched_fork_init(void *unused, struct task_struct *p) { - struct walt_task_struct *wts = (struct walt_task_struct *) p->android_vendor_data1; - if (unlikely(walt_disabled)) return; - wts->last_sleep_ts = 0; - wts->wake_up_idle = false; - wts->boost = 0; - wts->boost_expires = 0; - wts->boost_period = false; - wts->low_latency = false; - wts->iowaited = false; + + __sched_fork_init(p); } static void android_rvh_ttwu_cond(void *unused, bool *cond) @@ -4156,7 +4157,6 @@ static void register_walt_hooks(void) register_trace_android_rvh_sched_cpu_dying(android_rvh_sched_cpu_dying, NULL); register_trace_android_rvh_set_task_cpu(android_rvh_set_task_cpu, NULL); register_trace_android_rvh_new_task_stats(android_rvh_new_task_stats, NULL); - register_trace_android_rvh_sched_fork(android_rvh_sched_fork, NULL); register_trace_android_rvh_account_irq(android_rvh_account_irq, NULL); register_trace_android_rvh_flush_task(android_rvh_flush_task, NULL); register_trace_android_rvh_update_misfit_status(android_rvh_update_misfit_status, NULL);