diff --git a/kernel/sched/walt/sched_avg.c b/kernel/sched/walt/sched_avg.c index 934490b61b5b..426bc30303cb 100644 --- a/kernel/sched/walt/sched_avg.c +++ b/kernel/sched/walt/sched_avg.c @@ -179,9 +179,14 @@ static inline void update_busy_hyst_end_time(int cpu, bool dequeue, (util_load_trigger) ? per_cpu(util_hyst_time, cpu) : 0); - if (agg_hyst_time) + if (agg_hyst_time) { atomic64_set(&per_cpu(busy_hyst_end_time, cpu), curr_time + agg_hyst_time); + trace_sched_busy_hyst_time(cpu, agg_hyst_time, prev_nr_run, + cpu_util(cpu), per_cpu(hyst_time, cpu), + per_cpu(coloc_hyst_time, cpu), + per_cpu(util_hyst_time, cpu)); + } } int sched_busy_hyst_handler(struct ctl_table *table, int write, diff --git a/kernel/sched/walt/trace.h b/kernel/sched/walt/trace.h index 463f6ca24718..519ba4fd8aad 100644 --- a/kernel/sched/walt/trace.h +++ b/kernel/sched/walt/trace.h @@ -589,6 +589,41 @@ TRACE_EVENT(sched_get_nr_running_avg, __entry->nr_scaled) ); +TRACE_EVENT(sched_busy_hyst_time, + + TP_PROTO(int cpu, u64 hyst_time, unsigned long nr_run, + unsigned long cpu_util, u64 busy_hyst_time, + u64 coloc_hyst_time, u64 util_hyst_time), + + TP_ARGS(cpu, hyst_time, nr_run, cpu_util, busy_hyst_time, + coloc_hyst_time, util_hyst_time), + + TP_STRUCT__entry( + __field(int, cpu) + __field(u64, hyst_time) + __field(unsigned long, nr_run) + __field(unsigned long, cpu_util) + __field(u64, busy_hyst_time) + __field(u64, coloc_hyst_time) + __field(u64, util_hyst_time) + ), + + TP_fast_assign( + __entry->cpu = cpu; + __entry->hyst_time = hyst_time; + __entry->nr_run = nr_run; + __entry->cpu_util = cpu_util; + __entry->busy_hyst_time = busy_hyst_time; + __entry->coloc_hyst_time = coloc_hyst_time; + __entry->util_hyst_time = util_hyst_time; + ), + + TP_printk("cpu=%d hyst_time=%llu nr_run=%lu cpu_util=%lu busy_hyst_time=%llu coloc_hyst_time=%llu util_hyst_time=%llu", + __entry->cpu, __entry->hyst_time, __entry->nr_run, + __entry->cpu_util, __entry->busy_hyst_time, + __entry->coloc_hyst_time, __entry->util_hyst_time) +); + TRACE_EVENT(sched_ravg_window_change, TP_PROTO(unsigned int sched_ravg_window, unsigned int new_sched_ravg_window