aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Bellasi <patrick.bellasi@arm.com>2015-06-22 13:50:01 +0100
committerVincent Guittot <vincent.guittot@linaro.org>2015-08-10 17:57:09 +0200
commite43fbd19849c91f2ef5dac5d0680db68cd8ca2dd (patch)
tree4062c1b7bb3b9929bfdcf2f17d42deebaf1656bd
parent1f2e63b897d578e5841929a2958e2270151052d9 (diff)
DEBUG: schedtune: add tracepoint for task boost signal
Change-Id: I026267388453754629e6323cb0e7bb14b4fe4598 Signed-off-by: Patrick Bellasi <patrick.bellasi@arm.com>
-rw-r--r--include/trace/events/sched.h29
-rw-r--r--kernel/sched/fair.c2
2 files changed, 31 insertions, 0 deletions
diff --git a/include/trace/events/sched.h b/include/trace/events/sched.h
index acaf7ffc6e3b..a08174641123 100644
--- a/include/trace/events/sched.h
+++ b/include/trace/events/sched.h
@@ -677,6 +677,35 @@ TRACE_EVENT(sched_tune_config,
__entry->pc_nrg_gain, __entry->pc_cap_gain)
);
+/*
+ * Tracepoint for accounting task boosted utilization
+ */
+TRACE_EVENT(sched_boost_task,
+
+ TP_PROTO(struct task_struct *tsk, unsigned long utilization, unsigned long margin),
+
+ TP_ARGS(tsk, utilization, margin),
+
+ TP_STRUCT__entry(
+ __array( char, comm, TASK_COMM_LEN )
+ __field( pid_t, pid )
+ __field( unsigned long, utilization )
+ __field( unsigned long, margin )
+ ),
+
+ TP_fast_assign(
+ memcpy(__entry->comm, tsk->comm, TASK_COMM_LEN);
+ __entry->pid = tsk->pid;
+ __entry->utilization = utilization;
+ __entry->margin = margin;
+ ),
+
+ TP_printk("comm=%s pid=%d utilization=%lu margin=%lu",
+ __entry->comm, __entry->pid,
+ __entry->utilization,
+ __entry->margin)
+);
+
#endif /* _TRACE_SCHED_H */
/* This part must be outside protection */
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index 31198fbf841a..2b44124b6ff5 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -5410,6 +5410,8 @@ boosted_task_utilization(struct task_struct *task)
if (!task_rq(task)->rd->overutilized)
margin = schedtune_task_margin(task);
+ trace_sched_boost_task(task, utilization, margin);
+
utilization += margin;
return utilization;