#3696 closed project (fixed)

Basic Support for Trace Compass

Reported by: Sebastian Huber Owned by: Sebastian Huber
Priority: normal Milestone: 5.1
Component: tool Version: 5
Severity: normal Keywords: SoC, statistics
Cc: Blocked By:
Blocking:

Description

The Trace Compass is a tool to analyse and display trace data. Trace data can be gathered from RTEMS applications via various means, for example:

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 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.
  1. 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).
  1. The Trace Compass must be able to analyse and display the information obtained from the Event Recording.
  1. 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 Common Trace Format, Babeltrace, 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.

Change History (5)

comment:1 Changed on Feb 28, 2019 at 9:07:23 PM by Gedare Bloom

Keywords: SoC testing added; GSoC removed

comment:2 Changed on Feb 28, 2019 at 9:09:32 PM by Gedare Bloom

Keywords: statistics added; testing removed

comment:3 Changed on May 31, 2019 at 10:01:13 AM by Ravindra Kumar Meena

The current stable version 1.5.6 of babeltrace does not have feature to convert live trace stream into CTF. This feature is currently in development and will be released in babeltrace 2.0

Last edited on May 31, 2019 at 10:01:45 AM by Ravindra Kumar Meena (previous) (diff)

comment:4 Changed on Feb 10, 2020 at 8:30:04 PM by Christian Mauderer

This project has been at least partially done during GSoC 2019 and further developed since then. For everyone picking up this project: Check carefully what can be extended.

comment:5 Changed on Apr 2, 2020 at 8:58:00 AM by Sebastian Huber

Milestone: 5.1
Resolution: fixed
Status: assignedclosed
Version: 5
Note: See TracTickets for help on using tickets.