Hi Vivek,
Let's get Chris involved in this discussion. He is the main mentor here and
knows more about the direction the project should go.
On 03/17/2016 11:27 AM, vivek kukreja wrote:
Hello Isaac,
Thanks for your suggestions on my proposal. I will use your personal email for
future correspondence. I have a few questions:
Can you please share some use-cases for tracing that developers are interested
in?
I would like to understand the features you require at Vecna and the flow of
how tracing should work for your purpose.
Our needs are only one factor. We need to consider the overall needs of the
RTEMS community. That being said, I'll be happy to explain some more a little
later.
Also can you give an overview about the lttng-live functionality you have
implemented and how its used? And how it can be improved using CTF?
Take a look at the links I added to your document proposal:
Specifically:
https://github.com/lttng/lttng-tools/blob/master/doc/live-reading-protocol.txt
I would highly recommended reading the beginning of this document to understand
what CTF really is.
http://diamon.org/ctf/#specification
I would also suggest building a barebones C program that can read a CTF stream
given a super simple metadata file.Once you understand what CTF is, and how the
metadata describes
it, this shouldn't take more than a day or two. That being said, it could take
quite a long time for the concepts to make sense.
This program should not parse or read metadata at all, just interpret the
stream assuming a fixed metadata file.
I did this exercise, and it was really helpful in intuitively understanding CTF.
lttng-live is a protocol that talks to a trace server over TCP (sometimes
called relay daemon), and asks it for trace streams. It sends some messages and
gets
some replies from the server, and then starts receiving the trace stream.
Isaac
Regards,
Vivek
On 17-Mar-2016, at 17:54, Isaac Gutekunst <isaac.guteku...@vecna.com> wrote:
I Vivek,
Thanks for the proposal. I am looking it over now!
Welcome to the program and hello!
A bit about me: I'm an embedded firmware engineer at Vecna Technologis
(vecna.com). We are using RTEMS
here for our next generation robotics platform. We are also committed to
helping RTEMS through open source
contributions, including mentoring GSoC students.
I'm really excited that you are interested in trace. There are a lot of
fascinating and fundamental concepts lurking
within. There is also a huge opportunity to provide a feature which brings
RTEMS closer to feature parity with some
of the most expensive commercial RTOSs. That's pretty awesome! I'm personally
really excited because this functionality
has immediate use cases for our robotic work here. I've already done a decent
amount of unreleased work adding
lttng-live functionality to one of our projects. It's super alpha quality, and
written in C++ which might limit its
usefulness.
I also have a system for emitting trace messages into a different buffer (not
the RTEMS Capture Engine), since I needed
to test it on Linux.
Chris: Does the current capture engine allow simultaneous reading and writing
of trace data? This is an important feature for
us at Vecna, and I imagine would be useful to others. Especially with
lttng-live support.
Chris: Should most communication be typically be done on the rtems-devel
mailing list?
Another note:
You seem to have received the wrong email address. For GSoC I will either be
using this email (from work),
or iguteku...@gmail.com (personal email associated with the GSoC website).
Isaac
On 03/17/2016 04:10 AM, vivek kukreja wrote:
Hi Chris,
Sorry for the delay. I was caught up with my college assessments.
First draft of my proposal is up and open for comments. I'm going
through the Capturing Engine documentation now and the Project
description will be modified once i hear your suggestions.
Also git services are working now since i will be using a different
internet connection henceforth.
I will setup RTEMS using the latest git repo and see if the error in
the fileio tracing example is resolved and send a patch for the
missing include statement at the earliest.
Regards,
Vivek
________________________________________
From: Chris Johns <chr...@rtems.org>
Sent: 16 March 2016 10:18
To: Vivek Kukreja; guteku...@gmail.com
Cc: Gedare Bloom
Subject: Re: GSoC 2016 Interested in Tracing was Re:
Hi,
I have reviewed your document but I could no actual proposal in the
Google Document https://goo.gl/8jRfyV.
I have updated the proposal template so please check it against your one.
I suggest you fill in each section answering the questions provided.
g and fundamental concepts lurking
within. There is also a huge opportunity to provide a feature which brings
RTEMS closer to feature parity with some
of the most expensive commercial RTOSs. That's pretty awesome! I'm personally
really exc
Thanks.
Chris
On 15/03/2016 00:22, Vivek Kukreja wrote:
Hello Chris, Isaac
Sorry for the delay in adding a student proposal on
https://devel.rtems.org/wiki/GSoC/2016. Its still in progress meanwhile i am
looking at alternate ways of accessing git. I have not heard from Isaac
regarding his interest in mentoring the project but I hope Chris will comment
on the proposal once it takes shape.
Also regarding an issue i posted earlier about the trace buffering example
described on https://devel.rtems.org/wiki/Developer/Tracing/Trace_Buffering, i
was getting an error on running the rtems-tld command(fileio-wrapper.c:388:13:
error: dereferencing pointer to incomplete type 'struct Thread_Control') .
I found that there is an include statement in the online repo of
rtld-trace-buffer.ini file thats somehow missing from my installation(at
development/rtems/4.12/share/rtems/trace-linker)
"#include<rtems/rtems/tasksimpl.h>"
Now the tracing example successfully builds.
Regards,
Vivek
________________________________________
From: Chris Johns <chr...@rtems.org>
Sent: 10 March 2016 08:11
To: Vivek Kukreja
Cc: guteku...@gmail.com; Gedare Bloom
Subject: Re: GSoC 2016 Interested in Tracing was Re:
On 10/03/2016 06:39, Vivek Kukreja wrote:
Hello Chris, Isaac
I have run the modified hello world example and created a patch for it. I
cannot access your git server from my institute probably because of some
firewall issues. I will look into it.
Please keep me posted about the git access.
Following is the output of diff command:
--- rtems-4.11.0-rc1master/testsuites/samples/hello/init.c 2015-12-13
04:22:53.000000000 -0800
+++ rtems-4.11.0-rc1/testsuites/samples/hello/init.c 2016-03-09
10:35:51.527042759 -0800
@@ -28,7 +28,7 @@
)
{
rtems_test_begin();
- printf( "Hello World\n" );
+ printf( "Hello World- Modified by Vivek Kukreja 2016\n" );
rtems_test_end();
exit( 0 );
}
The https://devel.rtems.org/wiki/GSoC/GettingStarted pages asks you to
post to the lists your patch and then update the GSoC 2016 page at
https://devel.rtems.org/wiki/GSoC/2016. Can you please do this? Thanks.
I have gone through some recent archives of the IRC and i have some questions:
1. RTEMS trace linker uses function wrapping to instrument linked files of app
to interact with capture engine(on-target) and fetching trace data. As Isaac
has described in this archive
https://www.mail-archive.com/devel@rtems.org/msg06199.html, barectf is a tool
used for tracing user-defined data/structs. Is it required and feasible as a
GSOC project to create support for this feature? As Chris said this would
require deciding the structure of things a bit.
Also, can you throw some light on 'target integration' of the capture engine
with rtems-tld and what tasks does it entail currently?
I have updated the Open Project TraceTool wiki page. Please see have a
look and see if that answers your questions.
2. LTTng and barectf support CTF generation. Its required that app/kernel files
linked using RTEMS trace linker generate either native CTF data or trace-data
that can be converted to CTF. Could you share some pointers/links to understand
the current architecture for CTF generation in RTEMS?
Currently there is no CTF support in RTEMS.
I think this feature has few prerequisites yet many features will use this. For
example: live trace-reading(over TCP/IP) as Isaac suggested.
Live trace is a function of the back end of the Capture Engine. The
Capture Engine at it's top takes in records from generated by barectf
and buffers them and at it's back end it interfaces to transports to get
the data off the target. This architecture disconnects the transport
from the tracing and allows different transports to be used. For example
it could TCP, or UDP, JTAG, SPI, or a UART. RTEMS users have a wide
range of hardware and often debug interfaces are unique because of the
costs they can add to hardware. Consider a satellite, adding a whole
network interface, MAC and TCP/IP stack to trace during development is
silly because there is no network in space yet all the hardware would
need to be provided for and at a minimum it would take valuable board
space. The key role of the Capture Engine is to provide a simple API for
the transport layers. This work in the Capture Engine is either
partially done or needs to be done.
A key function of the Capture engine is to provide concurrent buffering.
This means low overhead buffering safe in an SMP context. This is harder
than it appears. Keeping it separate from barectf and rtems-tld is
important.
I'm not sure how ambitious these projects are but given a chance i would like
to work on native CTF generation and live trace-reading with Isaac. Providing
support for tracing user-defined structs(like barectf) sounds interesting too
if that feature is required before CTF.
These are good GSoC tasks and we welcome your interest in the work.
Chris
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel