diff --git a/devlib/module/cpufreq.py b/devlib/module/cpufreq.py
index f4386ad..5a55213 100644
--- a/devlib/module/cpufreq.py
+++ b/devlib/module/cpufreq.py
@@ -363,3 +363,16 @@ class CpufreqModule(Module):
                 "done"\
                 .format(governor), as_root=True)
 
+    def trace_frequencies(self):
+        """
+        Report current frequencies on trace file
+        """
+        self.target.execute(
+                'FREQS=$(cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq); '
+                'CPU=0; for F in $FREQS; do '
+                '   echo "cpu_frequency:        state=$F cpu_id=$CPU" > /sys/kernel/debug/tracing/trace_marker; '
+                '   let CPU++; '
+                'done',
+                as_root=True
+        )
+
diff --git a/devlib/trace/ftrace.py b/devlib/trace/ftrace.py
index 871cc89..2973e0b 100644
--- a/devlib/trace/ftrace.py
+++ b/devlib/trace/ftrace.py
@@ -101,8 +101,14 @@ class FtraceCollector(TraceCollector):
         if self.automark:
             self.mark_start()
         self.target.execute('{} start {}'.format(self.target_binary, self.event_string), as_root=True)
+        if 'cpufreq' in self.target.modules:
+            self.logger.debug('Trace CPUFreq frequencies')
+            self.target.cpufreq.trace_frequencies()
 
     def stop(self):
+        if 'cpufreq' in self.target.modules:
+            self.logger.debug('Trace CPUFreq frequencies')
+            self.target.cpufreq.trace_frequencies()
         self.stop_time = time.time()
         if self.automark:
             self.mark_stop()