summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@quicinc.com>2018-01-09 15:40:36 -0800
committerGerrit - the friendly Code Review server <code-review@localhost>2018-01-09 15:40:35 -0800
commit335cf653471a1d8711265d359adbb779aff33f84 (patch)
tree4f8516a80314257a4913de192e63d1839fe4f491
parent05389087c33ba880ffd71f825314506c4def1f7c (diff)
parentf9e96dfcb886acb632bb287982fae51e7e31f289 (diff)
Merge "sched: Update tracepoint to include task info"
-rw-r--r--include/trace/events/sched.h12
-rw-r--r--kernel/sched/hmp.c3
-rw-r--r--kernel/sched/sched.h2
3 files changed, 11 insertions, 6 deletions
diff --git a/include/trace/events/sched.h b/include/trace/events/sched.h
index 739bcb89f602..cc0ebe6867a5 100644
--- a/include/trace/events/sched.h
+++ b/include/trace/events/sched.h
@@ -436,9 +436,9 @@ TRACE_EVENT(sched_update_task_ravg,
TRACE_EVENT(sched_get_task_cpu_cycles,
- TP_PROTO(int cpu, int event, u64 cycles, u64 exec_time),
+ TP_PROTO(int cpu, int event, u64 cycles, u64 exec_time, struct task_struct *p),
- TP_ARGS(cpu, event, cycles, exec_time),
+ TP_ARGS(cpu, event, cycles, exec_time, p),
TP_STRUCT__entry(
__field(int, cpu )
@@ -448,6 +448,8 @@ TRACE_EVENT(sched_get_task_cpu_cycles,
__field(u32, freq )
__field(u32, legacy_freq )
__field(u32, max_freq)
+ __field(pid_t, pid )
+ __array(char, comm, TASK_COMM_LEN )
),
TP_fast_assign(
@@ -458,12 +460,14 @@ TRACE_EVENT(sched_get_task_cpu_cycles,
__entry->freq = cpu_cycles_to_freq(cycles, exec_time);
__entry->legacy_freq = cpu_cur_freq(cpu);
__entry->max_freq = cpu_max_freq(cpu);
+ __entry->pid = p->pid;
+ memcpy(__entry->comm, p->comm, TASK_COMM_LEN);
),
- TP_printk("cpu=%d event=%d cycles=%llu exec_time=%llu freq=%u legacy_freq=%u max_freq=%u",
+ TP_printk("cpu=%d event=%d cycles=%llu exec_time=%llu freq=%u legacy_freq=%u max_freq=%u task=%d (%s)",
__entry->cpu, __entry->event, __entry->cycles,
__entry->exec_time, __entry->freq, __entry->legacy_freq,
- __entry->max_freq)
+ __entry->max_freq, __entry->pid, __entry->comm)
);
TRACE_EVENT(sched_update_history,
diff --git a/kernel/sched/hmp.c b/kernel/sched/hmp.c
index 70a556f0dd06..ea066ab8376b 100644
--- a/kernel/sched/hmp.c
+++ b/kernel/sched/hmp.c
@@ -2612,7 +2612,8 @@ update_task_rq_cpu_cycles(struct task_struct *p, struct rq *rq, int event,
p->cpu_cycles = cur_cycles;
- trace_sched_get_task_cpu_cycles(cpu, event, rq->cc.cycles, rq->cc.time);
+ trace_sched_get_task_cpu_cycles(cpu, event, rq->cc.cycles,
+ rq->cc.time, p);
}
static int
diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
index 7426ae4dced3..c0e3314bf4c2 100644
--- a/kernel/sched/sched.h
+++ b/kernel/sched/sched.h
@@ -1249,7 +1249,7 @@ static inline int cpu_min_power_cost(int cpu)
return cpu_rq(cpu)->cluster->min_power_cost;
}
-static inline u32 cpu_cycles_to_freq(u64 cycles, u32 period)
+static inline u32 cpu_cycles_to_freq(u64 cycles, u64 period)
{
return div64_u64(cycles, period);
}