Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit de151d63 authored by Lingutla Chandrasekhar's avatar Lingutla Chandrasekhar Committed by Gerrit - the friendly Code Review server
Browse files

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: default avatarLingutla Chandrasekhar <clingutla@codeaurora.org>
parent 512a9f26
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -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,
+6 −1
Original line number Diff line number Diff line
@@ -10253,7 +10253,12 @@ static int load_balance(int this_cpu, struct rq *this_rq,
				 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;
}