Re: [PATCH V3 0/3] Integration of function trace with System Trace IP blocks

From: Chunyan Zhang
Date: Tue Aug 09 2016 - 02:57:32 EST


Removing maxime.coquelin@xxxxxx since it seems an unreachable address

On Tue, Aug 9, 2016 at 2:32 PM, Chunyan Zhang <zhang.chunyan@xxxxxxxxxx> wrote:
> 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
> entity.
>
> This patchset is trying to use STM IP blocks to store some function
> tracing information produced by Ftrace and I'm taking the Function trace
> (TRACE_FN) as the example in this patchset, but other types of traces
> also can be supported.
>
> 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.
>
> In this patchset made many modifications according to the comments on
> last patchset, the first two patches of this serial have been midified
> completely. This patchset implemented the similar features, but in the
> completely different way.
>
> Comments and advice would be greatly appreciated.
>
> Thanks,
> Chunyan
>
> [1]. https://lwn.net/Articles/674746/
> [2]. http://lxr.free-electrons.com/source/drivers/hwtracing/intel_th/
> [3]. http://mipi.org/specifications/debug#STP
>
> Changes v3:
> * Rebased on v4.8-rc1.
> * Added trace_export class, and make traces can be exported to not only
> ring buffer but also other area such as STM.
> * Made stm_ftrace as an trace_export.
> * More detailed changes are described in change log of each patch.
>
> Changes v2:
> * Addressed comments from Alexander Shishkin:
> - Modified some ambiguous change logs.
> - Decoupled stm_ftrace and trace_output interface to STM.
> - Changed the file name from stm_ftrace.c to stm/ftrace.c.
> - Implemented link/unlink hooks for stm_ftrace.
> * Removed useless header file include from stm/ftrace.c
> * Added Acked-by from Steven Rostedt on 4/4.
>
> Chunyan Zhang (3):
> tracing: add a possibility of exporting function trace to other places
> instead of ring buffer only
> stm class: ftrace: Add ftrace-export-over-stm driver
> 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 | 11 +++
> drivers/hwtracing/stm/Makefile | 2 +
> drivers/hwtracing/stm/core.c | 7 +-
> drivers/hwtracing/stm/dummy_stm.c | 2 +-
> drivers/hwtracing/stm/ftrace.c | 87 +++++++++++++++++++
> include/linux/stm.h | 4 +-
> include/linux/trace.h | 31 +++++++
> kernel/trace/trace.c | 124 +++++++++++++++++++++++++++-
> kernel/trace/trace.h | 31 +++++++
> 11 files changed, 300 insertions(+), 12 deletions(-)
> create mode 100644 drivers/hwtracing/stm/ftrace.c
> create mode 100644 include/linux/trace.h
>
> --
> 2.7.4
>