From 271e7db7d10f15afd6987ed9951e4356cdeffdd7 Mon Sep 17 00:00:00 2001 From: Sai Harshini Nimmala Date: Thu, 22 Sep 2022 17:27:37 -0700 Subject: [PATCH 1/4] sched/walt: Replace HK_FLAG_TIMER Replace HK_FLAG_TIMER with HK_TYPE_TIMER because HK_FLAG_TIMER is removed upstream. Change-Id: I6432556b6148030c8c6621cd0790d8906e0c94ec Signed-off-by: Sai Harshini Nimmala --- kernel/sched/walt/walt_halt.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/kernel/sched/walt/walt_halt.c b/kernel/sched/walt/walt_halt.c index 756d455fca87..e6b61e00182f 100644 --- a/kernel/sched/walt/walt_halt.c +++ b/kernel/sched/walt/walt_halt.c @@ -460,7 +460,7 @@ static void android_rvh_get_nohz_timer_target(void *unused, int *cpu, bool *done *done = true; - if (housekeeping_cpu(*cpu, HK_FLAG_TIMER) && !cpu_halted(*cpu)) { + if (housekeeping_cpu(*cpu, HK_TYPE_TIMER) && !cpu_halted(*cpu)) { if (!available_idle_cpu(*cpu)) return; default_cpu = *cpu; @@ -469,7 +469,7 @@ static void android_rvh_get_nohz_timer_target(void *unused, int *cpu, bool *done rcu_read_lock(); for_each_domain(*cpu, sd) { for_each_cpu_and(i, sched_domain_span(sd), - housekeeping_cpumask(HK_FLAG_TIMER)) { + housekeeping_cpumask(HK_TYPE_TIMER)) { if (*cpu == i) continue; @@ -483,7 +483,7 @@ static void android_rvh_get_nohz_timer_target(void *unused, int *cpu, bool *done if (default_cpu == -1) { cpumask_complement(&unhalted, cpu_halt_mask); for_each_cpu_and(i, &unhalted, - housekeeping_cpumask(HK_FLAG_TIMER)) { + housekeeping_cpumask(HK_TYPE_TIMER)) { if (*cpu == i) continue; From 69d2ba35d6064d644573351e963bc1c9042cd7f1 Mon Sep 17 00:00:00 2001 From: Sai Harshini Nimmala Date: Thu, 22 Sep 2022 17:30:39 -0700 Subject: [PATCH 2/4] sched/walt: Expand group_first_cpu group_first_cpu() is removed upstream. Expand the function in all the places that it is used. Change-Id: I04f4f9e2b37fca897ee45165b1976e1bec83f5bd Signed-off-by: Sai Harshini Nimmala --- kernel/sched/walt/walt_lb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/sched/walt/walt_lb.c b/kernel/sched/walt/walt_lb.c index 95dd2e1b645e..a4dc29d3f12a 100644 --- a/kernel/sched/walt/walt_lb.c +++ b/kernel/sched/walt/walt_lb.c @@ -1021,7 +1021,7 @@ static void walt_find_busiest_queue(void *unused, int dst_cpu, struct cpumask *env_cpus, struct rq **busiest, int *done) { - int fsrc_cpu = group_first_cpu(group); + int fsrc_cpu = cpumask_first(sched_group_span(group)); int busiest_cpu = -1; struct cpumask src_mask; int has_misfit; From 252aa83964360a32baad5ed3cdb394e61a24e3a6 Mon Sep 17 00:00:00 2001 From: Sai Harshini Nimmala Date: Thu, 22 Sep 2022 17:34:09 -0700 Subject: [PATCH 3/4] sched/walt: Update sched_switch tracehook sched_switch tracehook has been changed upstream. Update functions registered with tracehook accordingly. Change-Id: Ifba53f905634b476c60a8c69cfd87c6ad0c9cff7 Signed-off-by: Sai Harshini Nimmala --- kernel/sched/walt/walt_rt.c | 3 ++- kernel/sched/walt/walt_tp.c | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/kernel/sched/walt/walt_rt.c b/kernel/sched/walt/walt_rt.c index 18d531791ff2..2f57e9faf0b8 100644 --- a/kernel/sched/walt/walt_rt.c +++ b/kernel/sched/walt/walt_rt.c @@ -16,7 +16,8 @@ DEFINE_PER_CPU(u64, rt_task_arrival_time) = 0; static bool long_running_rt_task_trace_rgstrd; static void rt_task_arrival_marker(void *unused, bool preempt, - struct task_struct *prev, struct task_struct *next) + struct task_struct *prev, struct task_struct *next, + unsigned int prev_state) { unsigned int cpu = raw_smp_processor_id(); diff --git a/kernel/sched/walt/walt_tp.c b/kernel/sched/walt/walt_tp.c index 62d3acb2b482..8d7e2e4528c5 100644 --- a/kernel/sched/walt/walt_tp.c +++ b/kernel/sched/walt/walt_tp.c @@ -50,7 +50,8 @@ static void setup_prev_cnts(u32 cpu, u32 cnten_val) } void tracectr_notifier(void *ignore, bool preempt, - struct task_struct *prev, struct task_struct *next) + struct task_struct *prev, struct task_struct *next, + unsigned int prev_state) { u32 cnten_val; int current_pid; From c388a7b37ffeeebd43d9352b8af3874d2394ba9a Mon Sep 17 00:00:00 2001 From: Sai Harshini Nimmala Date: Thu, 22 Sep 2022 17:38:15 -0700 Subject: [PATCH 4/4] sched/walt: Define sched_trace_rd_span sched_trace_rd_span is removed upstream. Restore the function locally. Change-Id: I066be161e1da49b11de10f034e8f46a4c1510391 Signed-off-by: Sai Harshini Nimmala --- kernel/sched/walt/walt_tp.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/kernel/sched/walt/walt_tp.c b/kernel/sched/walt/walt_tp.c index 8d7e2e4528c5..d82c4864076d 100644 --- a/kernel/sched/walt/walt_tp.c +++ b/kernel/sched/walt/walt_tp.c @@ -106,6 +106,15 @@ static void unregister_sched_switch_ctrs(void) cpuhp_remove_state_nocalls(USE_CPUHP_STATE); } +const struct cpumask *sched_trace_rd_span(struct root_domain *rd) +{ +#ifdef CONFIG_SMP + return rd ? rd->span : NULL; +#else + return NULL; +#endif +} + static void sched_overutilized(void *data, struct root_domain *rd, bool overutilized) {