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

Commit 40bea171 authored by Dietmar Eggemann's avatar Dietmar Eggemann
Browse files

ANDROID: trace: Add WALT util signal to trace event sched_load_cfs_rq



WALT only operates on root rq. WALT is already intergated into the
trace event sched_load_se.

Signed-off-by: default avatarDietmar Eggemann <dietmar.eggemann@arm.com>
Change-Id: If9c50c87404bc712ac29e9a9a8b90f7eb1b254e2
parent df6f68df
Loading
Loading
Loading
Loading
+28 −15
Original line number Diff line number Diff line
@@ -639,6 +639,19 @@ struct cfs_rq *__trace_sched_group_cfs_rq(struct sched_entity *se)
}
#endif /* CREATE_TRACE_POINTS */

#ifdef CONFIG_SCHED_WALT
extern unsigned int sysctl_sched_use_walt_cpu_util;
extern unsigned int sysctl_sched_use_walt_task_util;
extern unsigned int walt_ravg_window;
extern bool walt_disabled;

#define walt_util(util_var, demand_sum) {\
	u64 sum = demand_sum << SCHED_CAPACITY_SHIFT;\
	do_div(sum, walt_ravg_window);\
	util_var = (typeof(util_var))sum;\
	}
#endif

/*
 * Tracepoint for cfs_rq load tracking:
 */
@@ -654,6 +667,8 @@ TRACE_EVENT(sched_load_cfs_rq,
				__trace_sched_path(cfs_rq, NULL, 0)	)
		__field(	unsigned long,	load			)
		__field(	unsigned long,	util			)
		__field(	unsigned long,	util_pelt          	)
		__field(	unsigned long,	util_walt          	)
	),

	TP_fast_assign(
@@ -662,10 +677,21 @@ TRACE_EVENT(sched_load_cfs_rq,
				   __get_dynamic_array_len(path));
		__entry->load	= cfs_rq->runnable_load_avg;
		__entry->util	= cfs_rq->avg.util_avg;
		__entry->util_pelt = cfs_rq->avg.util_avg;
		__entry->util_walt = 0;
#ifdef CONFIG_SCHED_WALT
		if (&cfs_rq->rq->cfs == cfs_rq) {
			walt_util(__entry->util_walt,
				  cfs_rq->rq->prev_runnable_sum);
			if (!walt_disabled && sysctl_sched_use_walt_cpu_util)
				__entry->util = __entry->util_walt;
		}
#endif
	),

	TP_printk("cpu=%d path=%s load=%lu util=%lu", __entry->cpu,
		  __get_str(path), __entry->load, __entry->util)
	TP_printk("cpu=%d path=%s load=%lu util=%lu util_pelt=%lu util_walt=%lu",
		  __entry->cpu, __get_str(path), __entry->load, __entry->util,
		  __entry->util_pelt, __entry->util_walt)
);

/*
@@ -693,19 +719,6 @@ TRACE_EVENT(sched_load_rt_rq,
		  __entry->util)
);

#ifdef CONFIG_SCHED_WALT
extern unsigned int sysctl_sched_use_walt_cpu_util;
extern unsigned int sysctl_sched_use_walt_task_util;
extern unsigned int walt_ravg_window;
extern bool walt_disabled;

#define walt_util(util_var, demand_sum) {\
	u64 sum = demand_sum << SCHED_CAPACITY_SHIFT;\
	do_div(sum, walt_ravg_window);\
	util_var = (typeof(util_var))sum;\
	}
#endif

/*
 * Tracepoint for sched_entity load tracking:
 */