From db2bf2acc0d836dfe8eea94dbe8a139707ae1e21 Mon Sep 17 00:00:00 2001 From: Shaleen Agrawal Date: Sat, 30 Apr 2022 10:28:18 -0700 Subject: [PATCH] sched/walt: print global ws in UTRA traces Add a parameter in UTRA and UTRA_mini traces to help identify the global window_start. Change-Id: I1eb7432f47fe2f622ba1efc78047551b97f08952 Signed-off-by: Shaleen Agrawal --- kernel/sched/walt/trace.h | 21 +++++++++++++-------- kernel/sched/walt/walt.c | 4 ++-- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/kernel/sched/walt/trace.h b/kernel/sched/walt/trace.h index f780ea7cc85b..70de6d14d1bc 100644 --- a/kernel/sched/walt/trace.h +++ b/kernel/sched/walt/trace.h @@ -158,9 +158,9 @@ TRACE_EVENT(sched_update_task_ravg, TP_PROTO(struct task_struct *p, struct rq *rq, enum task_event evt, u64 wallclock, u64 irqtime, struct group_cpu_time *cpu_time, struct walt_rq *wrq, - struct walt_task_struct *wts), + struct walt_task_struct *wts, u64 walt_irq_work_lastq_ws), - TP_ARGS(p, rq, evt, wallclock, irqtime, cpu_time, wrq, wts), + TP_ARGS(p, rq, evt, wallclock, irqtime, cpu_time, wrq, wts, walt_irq_work_lastq_ws), TP_STRUCT__entry( __array(char, comm, TASK_COMM_LEN) @@ -194,6 +194,7 @@ TRACE_EVENT(sched_update_task_ravg, __field(u64, active_time) __field(u32, curr_top) __field(u32, prev_top) + __field(u64, walt_irq_work_lastq_ws) ), TP_fast_assign( @@ -232,9 +233,10 @@ TRACE_EVENT(sched_update_task_ravg, __entry->active_time = wts->active_time; __entry->curr_top = wrq->curr_top; __entry->prev_top = wrq->prev_top; + __entry->walt_irq_work_lastq_ws = walt_irq_work_lastq_ws; ), - TP_printk("wc %llu ws %llu delta %llu event %s cpu %d cur_freq %u cur_pid %d task %d (%s) ms %llu delta %llu demand %u coloc_demand: %u sum %u irqtime %llu pred_demand_scaled %u rq_cs %llu rq_ps %llu cur_window %u (%s) prev_window %u (%s) nt_cs %llu nt_ps %llu active_time %u grp_cs %lld grp_ps %lld, grp_nt_cs %llu, grp_nt_ps: %llu curr_top %u prev_top %u", + TP_printk("wc %llu ws %llu delta %llu event %s cpu %d cur_freq %u cur_pid %d task %d (%s) ms %llu delta %llu demand %u coloc_demand: %u sum %u irqtime %llu pred_demand_scaled %u rq_cs %llu rq_ps %llu cur_window %u (%s) prev_window %u (%s) nt_cs %llu nt_ps %llu active_time %u grp_cs %lld grp_ps %lld, grp_nt_cs %llu, grp_nt_ps: %llu curr_top %u prev_top %u global_ws %llu", __entry->wallclock, __entry->win_start, __entry->delta, task_event_names[__entry->evt], __entry->cpu, __entry->cur_freq, __entry->cur_pid, @@ -248,7 +250,7 @@ TRACE_EVENT(sched_update_task_ravg, __entry->nt_cs, __entry->nt_ps, __entry->active_time, __entry->grp_cs, __entry->grp_ps, __entry->grp_nt_cs, __entry->grp_nt_ps, - __entry->curr_top, __entry->prev_top) + __entry->curr_top, __entry->prev_top, __entry->walt_irq_work_lastq_ws) ); TRACE_EVENT(sched_update_task_ravg_mini, @@ -256,9 +258,9 @@ TRACE_EVENT(sched_update_task_ravg_mini, TP_PROTO(struct task_struct *p, struct rq *rq, enum task_event evt, u64 wallclock, u64 irqtime, struct group_cpu_time *cpu_time, struct walt_rq *wrq, - struct walt_task_struct *wts), + struct walt_task_struct *wts, u64 walt_irq_work_lastq_ws), - TP_ARGS(p, rq, evt, wallclock, irqtime, cpu_time, wrq, wts), + TP_ARGS(p, rq, evt, wallclock, irqtime, cpu_time, wrq, wts, walt_irq_work_lastq_ws), TP_STRUCT__entry( __array(char, comm, TASK_COMM_LEN) @@ -277,6 +279,7 @@ TRACE_EVENT(sched_update_task_ravg_mini, __field(u64, grp_ps) __field(u32, curr_window) __field(u32, prev_window) + __field(u64, walt_irq_work_lastq_ws) ), TP_fast_assign( @@ -296,15 +299,17 @@ TRACE_EVENT(sched_update_task_ravg_mini, __entry->grp_ps = cpu_time ? cpu_time->prev_runnable_sum : 0; __entry->curr_window = wts->curr_window; __entry->prev_window = wts->prev_window; + __entry->walt_irq_work_lastq_ws = walt_irq_work_lastq_ws; ), - TP_printk("wc %llu ws %llu delta %llu event %s cpu %d task %d (%s) ms %llu delta %llu demand %u rq_cs %llu rq_ps %llu cur_window %u prev_window %u grp_cs %lld grp_ps %lld", + TP_printk("wc %llu ws %llu delta %llu event %s cpu %d task %d (%s) ms %llu delta %llu demand %u rq_cs %llu rq_ps %llu cur_window %u prev_window %u grp_cs %lld grp_ps %lld global_ws %llu", __entry->wallclock, __entry->win_start, __entry->delta, task_event_names[__entry->evt], __entry->cpu, __entry->pid, __entry->comm, __entry->mark_start, __entry->delta_m, __entry->demand, __entry->rq_cs, __entry->rq_ps, __entry->curr_window, - __entry->prev_window, __entry->grp_cs, __entry->grp_ps) + __entry->prev_window, __entry->grp_cs, __entry->grp_ps, + __entry->walt_irq_work_lastq_ws) ); struct migration_sum_data; diff --git a/kernel/sched/walt/walt.c b/kernel/sched/walt/walt.c index c3e018a7da13..95cf1ed00be2 100644 --- a/kernel/sched/walt/walt.c +++ b/kernel/sched/walt/walt.c @@ -2215,9 +2215,9 @@ static void walt_update_task_ravg(struct task_struct *p, struct rq *rq, int even wts->iowaited = p->in_iowait; trace_sched_update_task_ravg(p, rq, event, wallclock, irqtime, - &wrq->grp_time, wrq, wts); + &wrq->grp_time, wrq, wts, atomic64_read(&walt_irq_work_lastq_ws)); trace_sched_update_task_ravg_mini(p, rq, event, wallclock, irqtime, - &wrq->grp_time, wrq, wts); + &wrq->grp_time, wrq, wts, atomic64_read(&walt_irq_work_lastq_ws)); done: wts->mark_start = wallclock;