aboutsummaryrefslogtreecommitdiff
path: root/kernel/sched/cpufreq_sched.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/sched/cpufreq_sched.c')
-rw-r--r--kernel/sched/cpufreq_sched.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/kernel/sched/cpufreq_sched.c b/kernel/sched/cpufreq_sched.c
index 9f21c308ef72..c72537c0c500 100644
--- a/kernel/sched/cpufreq_sched.c
+++ b/kernel/sched/cpufreq_sched.c
@@ -14,6 +14,9 @@
#include <linux/delay.h>
#include <linux/string.h>
+#define CREATE_TRACE_POINTS
+#include <trace/events/cpufreq_sched.h>
+
#include "sched.h"
#define THROTTLE_NSEC 50000000 /* 50ms default */
@@ -78,6 +81,7 @@ static bool finish_last_request(struct gov_data *gd)
int usec_left = ktime_to_ns(ktime_sub(gd->throttle, now));
usec_left /= NSEC_PER_USEC;
+ trace_cpufreq_sched_throttled(usec_left);
usleep_range(usec_left, usec_left + 100);
now = ktime_get();
if (ktime_after(now, gd->throttle))
@@ -188,6 +192,9 @@ static void update_fdomain_capacity_request(int cpu)
goto out;
freq_new = policy->freq_table[index_new].frequency;
+ trace_cpufreq_sched_request_opp(cpu, capacity, freq_new,
+ gd->requested_freq);
+
if (freq_new == gd->requested_freq)
goto out;
@@ -224,6 +231,8 @@ void update_cpu_capacity_request(int cpu, bool request)
if (new_capacity == scr->total)
return;
+ trace_cpufreq_sched_update_capacity(cpu, request, scr, new_capacity);
+
scr->total = new_capacity;
if (request)
update_fdomain_capacity_request(cpu);