Loading include/trace/events/sched.h +43 −0 Original line number Diff line number Diff line Loading @@ -610,6 +610,49 @@ TRACE_EVENT(sched_contrib_scale_f, __entry->cpu, __entry->freq_scale_factor, __entry->cpu_scale_factor) ); /* * Tracepoint for accounting sched averages for tasks. */ TRACE_EVENT(sched_load_avg_task, TP_PROTO(struct task_struct *tsk, struct sched_avg *avg), TP_ARGS(tsk, avg), TP_STRUCT__entry( __array( char, comm, TASK_COMM_LEN ) __field( pid_t, pid ) __field( int, cpu ) __field( unsigned long, load_avg ) __field( unsigned long, util_avg ) __field( u64, load_sum ) __field( u32, util_sum ) __field( u32, period_contrib ) ), TP_fast_assign( memcpy(__entry->comm, tsk->comm, TASK_COMM_LEN); __entry->pid = tsk->pid; __entry->cpu = task_cpu(tsk); __entry->load_avg = avg->load_avg; __entry->util_avg = avg->util_avg; __entry->load_sum = avg->load_sum; __entry->util_sum = avg->util_sum; __entry->period_contrib = avg->period_contrib; ), TP_printk("comm=%s pid=%d cpu=%d load_avg=%lu util_avg=%lu load_sum=%llu" " util_sum=%u period_contrib=%u", __entry->comm, __entry->pid, __entry->cpu, __entry->load_avg, __entry->util_avg, (u64)__entry->load_sum, (u32)__entry->util_sum, (u32)__entry->period_contrib) ); #endif /* _TRACE_SCHED_H */ /* This part must be outside protection */ Loading kernel/sched/fair.c +3 −0 Original line number Diff line number Diff line Loading @@ -3085,6 +3085,9 @@ static inline void update_load_avg(struct sched_entity *se, int update_tg) if (update_cfs_rq_load_avg(now, cfs_rq, true) && update_tg) update_tg_load_avg(cfs_rq, 0); if (entity_is_task(se)) trace_sched_load_avg_task(task_of(se), &se->avg); } /** Loading Loading
include/trace/events/sched.h +43 −0 Original line number Diff line number Diff line Loading @@ -610,6 +610,49 @@ TRACE_EVENT(sched_contrib_scale_f, __entry->cpu, __entry->freq_scale_factor, __entry->cpu_scale_factor) ); /* * Tracepoint for accounting sched averages for tasks. */ TRACE_EVENT(sched_load_avg_task, TP_PROTO(struct task_struct *tsk, struct sched_avg *avg), TP_ARGS(tsk, avg), TP_STRUCT__entry( __array( char, comm, TASK_COMM_LEN ) __field( pid_t, pid ) __field( int, cpu ) __field( unsigned long, load_avg ) __field( unsigned long, util_avg ) __field( u64, load_sum ) __field( u32, util_sum ) __field( u32, period_contrib ) ), TP_fast_assign( memcpy(__entry->comm, tsk->comm, TASK_COMM_LEN); __entry->pid = tsk->pid; __entry->cpu = task_cpu(tsk); __entry->load_avg = avg->load_avg; __entry->util_avg = avg->util_avg; __entry->load_sum = avg->load_sum; __entry->util_sum = avg->util_sum; __entry->period_contrib = avg->period_contrib; ), TP_printk("comm=%s pid=%d cpu=%d load_avg=%lu util_avg=%lu load_sum=%llu" " util_sum=%u period_contrib=%u", __entry->comm, __entry->pid, __entry->cpu, __entry->load_avg, __entry->util_avg, (u64)__entry->load_sum, (u32)__entry->util_sum, (u32)__entry->period_contrib) ); #endif /* _TRACE_SCHED_H */ /* This part must be outside protection */ Loading
kernel/sched/fair.c +3 −0 Original line number Diff line number Diff line Loading @@ -3085,6 +3085,9 @@ static inline void update_load_avg(struct sched_entity *se, int update_tg) if (update_cfs_rq_load_avg(now, cfs_rq, true) && update_tg) update_tg_load_avg(cfs_rq, 0); if (entity_is_task(se)) trace_sched_load_avg_task(task_of(se), &se->avg); } /** Loading