[PATCH] Basic Support for Trace Compass

Chris Johns chrisj at rtems.org
Fri Jun 7 05:21:10 UTC 2019


On 7/6/19 3:11 pm, Sebastian Huber wrote:
> On 07/06/2019 05:40, Chris Johns wrote:
>>> +Eclipse to analyse and display trace data graphically. Trace data can be
>>> gathered from
>>> +RTEMS applications via various means, for example:
>>> +
>>> +- :ref:`RTEMS Trace Linker <TraceLinker>`
>>> +- :ref:`RTEMS Capture Engine <CaptureEngine>`
>>> +- :ref:`RTEMS Event Recording <EventRecording>`
>>> +
>>> +Event Recording infrastructure is used to analyse and display some basic
>>> information.
>>> +The basic information is defined by the Linux kernel trace support (lttng)
>>> and may
>>> +include CPU Usage, IRQ Analysis(IRQ Statistics, IRQ Table etc.), Linux
>>> Kernel(Control Flow,
>>> +Resources etc.)
>> Linux kernel?
> 
> Yes, this is also outlined in the ticket:
> 
> https://devel.rtems.org/ticket/3696
> 
> "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."
> 

Thanks. I did not pick this up from the posted text.

>>
>>> +
>>> +Advanced support for Trace Compass could include dynamic memory traces,
>>> stack usage, network packet flow, etc.
>> "Could include"? A user manual so it should reflect what we have and what user
>> can find.
>>
>>> +
>>> +This scheme of tracing goes through the flow of events described in a
>>> subsequent flowchart. Please ser
>> ?
>>
>>> +this requires the environment setup of
>>> `rtems-libbsd<https://github.com/RTEMS/rtems-libbsd>`_  and
>>> `rtems-tools<https://github.com/RTEMS/rtems-tools>`_:
>>> +
>>> +Step 1: The Qemu simulator is used to run a LibBSD based application and
>>> connect it to a virtual network on host.
>>> +This requires to create a TAP virtual Ethernet interface for this.
>> Or VDE.
>>
>>> The Qemu command line is used for board support package, e.g the
>>> arm/xilinx_zynq_a9_qemu BSP etc.
>> etc ?
>>
>>> +The host can be connected to target via telnet.
>> MacOS does not ship with telnet any more.
> 
> You can probably install the telnet client yourself.

Yeap or a simple python client.

> I think this section should not contain information about a particular BSP
> setup. It should preset the information involved in tracing in an abstract way.

Agreed.

> 
>>
>>> +
>>> +Step 2: On the host computer the command line tool rtems-record can be used
>>> to get recorded events from the record server running on the target system.
>>> +Recorded events can be sent to a host computer with a very simple record
>>> server started by rtems_record_start_server() via a TCP connection.
>>> +
>>> +Step 3: The trace data received at host from QEMU target is converted into
>>> CTF. Since, Babeltrace and Trace Compass are two
>>> +compatible software which can read and write CTF. The converted CTF ca be
>>> passed to any of these softwares.
>>> +
>>> +.. figure:: ../../images/user/event-recording-trace.png
>>> +  :align: center
>>> +  :width: 75%
>>>
>> Should we have something working before we make any additions to the user manual?
> 
> It was actually my idea to add this section right now. My experience is that
> documentation which is planned at the end of the project is never written.

Great and I also encourage this happening as well as posting for review but I am
not sure about merging into the main repo until you have some of the other
pieces place. Also I am not suggesting the support needs to be a polished
finished package, it just needs some more time to mature a little.

Chris



More information about the devel mailing list