Changes between Version 1 and Version 2 of GSoC/2018/EnhancementRuntimeTracing


Ignore:
Timestamp:
05/09/18 03:08:47 (6 years ago)
Author:
Vidushi Vashishth
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • GSoC/2018/EnhancementRuntimeTracing

    v1 v2  
    11= Enhancement of RTEMS runtime tracing =
    22
    3 [[TOC(REPLACE_WITH_PAGE_URL , depth=2)]]
     3[[PageOutline(1-3, Contents, inline)]]
    44
    55'''Students:''' Vidushi Vashishth
    66
    7 '''Mentors:''' Gedare Bloom, Chris Johns
     7'''Mentors:''' Gedare Bloom, Chris Johns, Sebastian Huber
     8
     9= Introduction =
     10
     11RTEMS tracing is an on-target software system which enables monitoring activities in user applications, 3rd party packages or the Kernel in real time. The tracing system can be a useful aid in identifying complex threading, resolving deadlocks or other real time issues in RTEMS application. It can be helpful in analysing the performance of the applications too.
     12
     13The tracing system currently comprises of the following components:
     141) RTEMS Trace Linker
     152) Capture Engine
     163) Common Trace Format (CTF) integration
     17
     18
     19= Project Goal =
     20
     21The aim of this project is threefold:
     22
     231) Combining CTF with rtems-tld tool:
     24Currently CTF data is generated using the [https://www.efficios.com/babeltrace/ Babletrace] tool. The Trace Linker uses the ELF file of the application to be traced and the user configuration file as input. It wraps functions declared in the configuration files with trace code that is used in generation of trace records for the capture engine. The linker generates the compiled file (ELF) to be run on the target and the associated CTF configuration file defining the trace records. The trace data and CTF configuration are then fed into the Babeltrace tool which converts it into CTF format. This output can be visualised using tools like Trace compass.
     25
     262) Transport mechanism for trace buffers (to the capture engine):
     27There have been previous attempts to integrate such a transport mechanism in the capture engine. These are not viable. Data gathering and transfer should occur on different threads. As a start I am exploring writing to qemu fat file and file transfer protocol
     28
     293) Live tracing vs Kernel level tracing:
     30Come up with design plans for both functionalities and implement the feature which is more relevant and impactful. A blog post regarding same is under development.
     31
     32= Tasks =
     33
     34TBD
     35
     36'''Blog:''' [https://vidushivashishth.github.io/]
     37
     38'''References:'''
     39
     40[https://devel.rtems.org/wiki/Developer/Tracing]
     41
     42[https://devel.rtems.org/wiki/Developer/Tracing/Trace_Linker]
     43
     44[https://devel.rtems.org/wiki/TBR/UserManual/Capture_Engine]