From 6037c6912343760e40d56d191896340748f13c1b Mon Sep 17 00:00:00 2001 From: Chris Redpath Date: Fri, 27 Oct 2017 16:52:17 +0100 Subject: [PATCH] ANDROID: sched/events: Introduce rt_rq load tracking trace event We want to be able to track rt_rq signals same as we do for other RQs. Signed-off-by: Chris Redpath (cherry-picked from commit 574a2d189695c334ae290f522b098f05398a3765) [ - Fixed conflicts with the refactored RT util_avg tracking - Changed commit title for consistency with other tracepoint patches ] Signed-off-by: Quentin Perret Change-Id: I38b64baa50e1ff86019ca4b8b0a04af994880b35 --- include/trace/events/sched.h | 24 ++++++++++++++++++++++++ kernel/sched/pelt.c | 3 +++ 2 files changed, 27 insertions(+) diff --git a/include/trace/events/sched.h b/include/trace/events/sched.h index 278d00dcf363..97c3a46105ca 100644 --- a/include/trace/events/sched.h +++ b/include/trace/events/sched.h @@ -672,6 +672,30 @@ TRACE_EVENT(sched_load_cfs_rq, ); /* + * Tracepoint for rt_rq load tracking: + */ +struct rq; +TRACE_EVENT(sched_load_rt_rq, + + TP_PROTO(struct rq *rq), + + TP_ARGS(rq), + + TP_STRUCT__entry( + __field( int, cpu ) + __field( unsigned long, util ) + ), + + TP_fast_assign( + __entry->cpu = rq->cpu; + __entry->util = rq->avg_rt.util_avg; + ), + + TP_printk("cpu=%d util=%lu", __entry->cpu, + __entry->util) +); + +/* * Tracepoint for sched_entity load tracking: */ TRACE_EVENT(sched_load_se, diff --git a/kernel/sched/pelt.c b/kernel/sched/pelt.c index 95923939c027..c116744ec44b 100644 --- a/kernel/sched/pelt.c +++ b/kernel/sched/pelt.c @@ -340,6 +340,9 @@ int update_rt_rq_load_avg(u64 now, struct rq *rq, int running) running)) { ___update_load_avg(&rq->avg_rt, 1, 1); + + trace_sched_load_rt_rq(rq); + return 1; } -- 2.11.0