sched: trace : Print current sched domain overutilization status

Extend sched_load_balance trace event to print overutilization
status of the current balancing sched domain.

Change-Id: Iae14e580294a0ab38394b4e8d660d0c5dd14327d
Signed-off-by: Lingutla Chandrasekhar <clingutla@codeaurora.org>
This commit is contained in:
Lingutla Chandrasekhar 2019-04-25 17:02:46 +05:30 • committed by Gerrit - the friendly Code Review server
commit de151d637f
2 changed files with 14 additions and 5 deletions

View file

@ -275,11 +275,12 @@ TRACE_EVENT(sched_load_balance,
TP_PROTO(int cpu, enum cpu_idle_type idle, int balance,
unsigned long group_mask, int busiest_nr_running,
unsigned long imbalance, unsigned int env_flags, int ld_moved,
unsigned int balance_interval, int active_balance),
unsigned int balance_interval, int active_balance,
int overutilized),
TP_ARGS(cpu, idle, balance, group_mask, busiest_nr_running,
imbalance, env_flags, ld_moved, balance_interval,
active_balance),
active_balance, overutilized),
TP_STRUCT__entry(
__field(int, cpu)
@ -292,6 +293,7 @@ TRACE_EVENT(sched_load_balance,
__field(int, ld_moved)
__field(unsigned int, balance_interval)
__field(int, active_balance)
__field(int, overutilized)
),
TP_fast_assign(
@ -305,16 +307,18 @@ TRACE_EVENT(sched_load_balance,
__entry->ld_moved = ld_moved;
__entry->balance_interval = balance_interval;
__entry->active_balance = active_balance;
__entry->overutilized = overutilized;
),
TP_printk("cpu=%d state=%s balance=%d group=%#lx busy_nr=%d imbalance=%ld flags=%#x ld_moved=%d bal_int=%d active_balance=%d",
TP_printk("cpu=%d state=%s balance=%d group=%#lx busy_nr=%d imbalance=%ld flags=%#x ld_moved=%d bal_int=%d active_balance=%d sd_overutilized=%d",
__entry->cpu,
__entry->idle == CPU_IDLE ? "idle" :
(__entry->idle == CPU_NEWLY_IDLE ? "newly_idle" : "busy"),
__entry->balance,
__entry->group_mask, __entry->busiest_nr_running,
__entry->imbalance, __entry->env_flags, __entry->ld_moved,
__entry->balance_interval, __entry->active_balance)
__entry->balance_interval, __entry->active_balance,
__entry->overutilized)
);
TRACE_EVENT(sched_load_balance_nohz_kick,

View file

@ -10253,7 +10253,12 @@ out:
group ? group->cpumask[0] : 0,
busiest ? busiest->nr_running : 0,
env.imbalance, env.flags, ld_moved,
sd->balance_interval, active_balance);
sd->balance_interval, active_balance,
#ifdef CONFIG_SCHED_WALT
sd_overutilized(sd));
#else
READ_ONCE(this_rq->rd->overutilized));
#endif
return ld_moved;
}