sched/walt: add sched_busy_hyst_time trace event

Create a trace event for tracking sched_busy_hyst
behavior to improve debugging.

Change-Id: I0921d8cc7e1f0781605a4963113a18e13827d6ac
Signed-off-by: Rishabh Bhatnagar <rishabhb@codeaurora.org>
This commit is contained in:
Rishabh Bhatnagar 2021-05-11 11:42:49 -07:00 committed by Rishabh Bhatnagar
parent df94d80ceb
commit 004502ad2d
2 changed files with 41 additions and 1 deletions

View File

@ -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,

View File

@ -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