[RFC PATCH 0/4] Integration of function trace with System Trace IP blocks

From: Chunyan Zhang
Date: Wed Jun 01 2016 - 07:19:22 EST

IP blocks allowing a variety of trace sources to log debugging
information to a pre-defined area have been introduced on a couple of
architecture [1][2]. These system trace blocks (also known as STM)
typically follow the MIPI STPv2 protocol [3] and provide a system wide
logging facility to any device, running a kernel or not, with access
to the block's log entry port(s). Since each trace message has a
timestamp, it is possible to correlate events happening in the entire
system rather than being confined to the logging facility of a single

This patchset is an RFC aimed at generating ideas on the best way to
use STM IP blocks to collect function tracing information produced by
Ftrace. That way logging information generated by the function trace
subsystem and gathered in the coresight sink can be used in conjunction
with trace data from other board components, also collected in the same
trace sink. This example is using ARM coresight STM but the same would
apply to any architecture wishing to do the same.

Comments and advice would be greatly appreciated.


[1]. https://lwn.net/Articles/674746/
[2]. http://lxr.free-electrons.com/source/drivers/hwtracing/intel_th/
[3]. http://mipi.org/specifications/debug#STP
[4]. http://lxr.free-electrons.com/source/include/linux/stm.h

Chunyan Zhang (4):
STM Ftrace: Adding generic buffer interface driver
trace: Introduce an output interface from ftrace to STM
trace: Duplicate the output of the function trace logs to STM
stm: Mark the functions of writing buffer with notrace

drivers/hwtracing/coresight/coresight-stm.c | 2 +-
drivers/hwtracing/intel_th/sth.c | 11 +++---
drivers/hwtracing/stm/Kconfig | 9 +++++
drivers/hwtracing/stm/Makefile | 2 ++
drivers/hwtracing/stm/core.c | 7 ++--
drivers/hwtracing/stm/dummy_stm.c | 2 +-
drivers/hwtracing/stm/stm_ftrace.c | 54 +++++++++++++++++++++++++++++
include/linux/stm.h | 4 +--
kernel/trace/Makefile | 1 +
kernel/trace/trace.c | 5 ++-
kernel/trace/trace_output_stm.c | 27 +++++++++++++++
kernel/trace/trace_output_stm.h | 14 ++++++++
12 files changed, 126 insertions(+), 12 deletions(-)
create mode 100644 drivers/hwtracing/stm/stm_ftrace.c
create mode 100644 kernel/trace/trace_output_stm.c
create mode 100644 kernel/trace/trace_output_stm.h