[RTEMS Project] #3696: Basic Support for Trace Compass

RTEMS trac trac at rtems.org
Wed Feb 20 12:02:45 UTC 2019


#3696: Basic Support for Trace Compass
------------------------------+-----------------------------
  Reporter:  Sebastian Huber  |      Owner:  Sebastian Huber
      Type:  project          |     Status:  assigned
  Priority:  normal           |  Milestone:
 Component:  tool             |    Version:
  Severity:  normal           |   Keywords:  GSoC
Blocked By:                   |   Blocking:
------------------------------+-----------------------------
 The [https://www.eclipse.org/tracecompass/ Trace Compass] is a tool to
 analyse and display trace data. Trace data can be gathered from RTEMS
 applications via various means, for example:
 * [https://docs.rtems.org/branches/master/user/tracing/tracelinker.html
 RTEMS Trace Linker]
 * [https://docs.rtems.org/branches/master/user/tracing/eventrecording.html
 Event Recording]
 * [https://docs.rtems.org/branches/master/user/tracing/captureengine.html
 Capture Engine]

 The goal of this project is to enable the Trace Compass to analyse and
 display some basic information using the Event Recording infrastructure.
 Basic information is defined by the Linux kernel trace support (lttng) and
 includes (see Trace Compass project explorer Tracing -> Traces ->
 Something):

 * kernel
  * Views
   * CPU usage
    * CPU usage
   * IRQ Analysis
    * IRQ Statistics
    * IRQ Table
    * IRQ vs Count
    * IRQ vs Time
   * Linux Kernel
    * Control Flow
    * Resources

 Example data can be obtained from the
 [https://github.com/tuxology/tracevizlab Trace Visualization Labs].

 Advanced support for Trace Compass could include dynamic memory traces,
 stack usage, network packet flow, etc.

 There are four main problems.

 1. Generation of sufficient trace events, currently the interrupt
 entry/exit events are not available for example.

 2. The trace data must be transferred from the target system running the
 RTEMS application to a host computer running the Trace Compass (transfer
 via TCP is available, for UDP based transfer see #3695).

 3. The Trace Compass must be able to analyse and display the information
 obtained from the Event Recording.

 4. The RTEMS user must be able to use this infrastructure.  This requires
 that it is easy to use, availability of tutorials and documentation.

 To tackle problem 3. there are two approaches possible. You can extend the
 Trace Compass to work with the trace data provided by RTEMS as is.
 Alternatively, the RTEMS trace data could be converted to Linux kernel
 trace data (lttng) which Trace Compass already understands.

 Related topics are [https://diamon.org/ctf/ Common Trace Format],
 [https://diamon.org/babeltrace/ Babeltrace],
 [https://github.com/efficios/barectf barectf], #2961 and #3028.

 **Skills Needed**

 You need good C and C++ skills with a proven record. You need to show
 socket level and networking programming skills. In case Trace Compass
 needs to be extended this requires Java skills and familiarity with the
 Eclipse framework. Knowledge of YAML and XML is helpful. High end RTEMS
 targets can generate a huge number of events per second (10MiB/s trace
 data is 1310720 events per second; on a 4GHz host processor this is 3051
 instructions per event under real-time processing conditions) which
 imposes a considerable work load to modern host computers, so the host
 programs must work efficiently.

 **Difficulty**

 We consider this an advanced project.

--
Ticket URL: <http://devel.rtems.org/ticket/3696>
RTEMS Project <http://www.rtems.org/>
RTEMS Project


More information about the bugs mailing list