[lttng-dev] GSoC 2013 Multi-layer event context backtrace

Francis Giraldeau francis.giraldeau at gmail.com
Fri May 3 13:43:24 EDT 2013


About the student:

Francis Giraldeau
francis.giraldeau at gmail.com
École Polytechnique de Montréal
Kernel tracing
fgiraldeau on oftc.net
GMT -5
Github: github.com/giraldeau
Twitter: N/A
Blog: multivax.blogspot.com
Personal web page: http://step.polymtl.ca/~fgiraldeau

I'm involved in Open Source development since 2003. I deployed large
scale IT systems for 5 years with Open Source software exclusively. For
my master, I decided to contribute to Augeas a new feature to manage
context-free configuration files in a typesafe, bidirectional manner,
specifically for httpd configuration. I decided to return to school to
get more insight about the runtime behavior of programs. In find the
Linux kernel tracing capabilities absolutely amazing, and I want to
extend them.

GSoC information

This is my first participation to GSoC, but I do have a large track
record of previous contributions to numerous OpenSource projects. All my
code is on the provided github link.

I do not apply for another project.

Realistically, I do have about 30 hours a week, because I have to share
my time with other research tasks.

Project Information

I want to bridge the gap between the kernel trace and the executing code
in userspace. It is possible to trace system calls with LTTng today, but
the developer has no clue where those calls are made from it's code. One
way to do solve this problem is to record the backtrace of the program,
for example in system call entry. It would then be possible to locate
the code that triggered some system call. LTTng has the concept of
per-event context, such that one could enable backtrace recording on any
event, not only limited to system calls. In addition, we could record
the backtrace either for the kernel side, or in userspace or both.

I already have a prototype that I used to locate all code that triggered
wake-up in processes, and is part of the lttng-modules addons.

https://github.com/giraldeau/lttng-modules/blob/wakeup2/addons/lttng-wakeup.c

I want to create a new per-event context in LTTng, that will support
this feature on any event recorded. This requires changes in many
components of LTTng: kernel module must support the feature and
lttng-tools must accepts the new context.

We expect to be able to enable to record the backtrace either of kerne
and userspace process (C code) on any events in a kernel trace. We want
to resolve the symbols when it's possible. In particular, it should be
able to support kernel address randomization, that may change the base
address randomly for security reasons. If time is left, we can add
support for other languages in userspace, like JavaScript.

I follow and participate actively to the project when I have something
original to contribute.

I want to be involved to support this feature when the project is over.

Thanks!

Francis

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4489 bytes
Desc: Signature cryptographique S/MIME
URL: <http://lists.lttng.org/pipermail/lttng-dev/attachments/20130503/ca0b1fcb/attachment-0001.bin>


More information about the lttng-dev mailing list