Google Summer of Code 2015

Google Summer of Code is a global program that offers students stipends to write code for open source projects.

The LTTng project will apply to participate in GSoC for a third year in 2015!

Guidelines for students applying to GSoC

Here a few guidelines and advice for aspiring applicants to GSoC:

  • Submit your application to Google by March 27 2015 19:00 UTC.
  • Join the IRC #lttng channel on OFTC (irc:// to discuss your application and project ideas.
    Since IRC and the mailing list are our usual means of communication, applicants who have shown initiative in reaching out to the community will be favored during the applications review process.

To get involved in the LTTng project, see our community page!

  • Break the ice! Try submitting a patch for simple issues such as typos, documentation improvements or simple bug fixes
  • Give the toolchain a try with some of your personal projects and show us a use case (performance issue, ease of debugging, etc.) that your project idea would solve.
  • Read the LTTng blog for inspiration.

Perhaps you have ideas to improve LTTng's usability? Discuss them with us, you might just have found yourself a summer project!

Don't panic! Some parts of the LTTng project can be quite daunting. We don't expect applicants to be familiar with all the concepts behind the LTTng codebase. We're always happy to help.

Additional tips for a successful application: The DOs and DON’Ts of Google Summer of Code: Student Edition

Project Ideas

Userspace RCU port to Windows

Brief explanation:

The userspace RCU library is currently supported on multiple architectures and platforms. However, Windows is currently unsupported. This project would involve the port of userspace RCU to Windows and the development of an extensive stress-test suite to ensure the stability of the port.

Expected results: A native port of userspace RCU to Windows (not cygwin based).

Skill level: Medium

Userspace application instrumentation and analyses

Brief explanation:

The LTTng userspace tracer relies on static tracepoint probes manually added to an application’s source code to generate events.

The currently privileged instrumentation method consists in creating a C header which contains a description of an LTTng event and declares a tracepoint. This header is then included by the application developer and called the same way a function would. See the LTTng documentation for more details.

As part of this project, a student would integrate relevant probes into an existing open source project and contribute analysis scripts to the LTTng Analyses project. This blog post gives a quick presentation of what is expected of such analysis scripts. The information extracted from userspace applications should supplement these analysis' reports.

Students proposing such a project will have to demonstrate a prior understanding of the instrumented project's internals and present clear analysis ideas.

Expected results: A set of instrumentation probes and trace analyses scripts

Skill level: Medium

Prerequisite Knowledge: C and Python development. Prior knowledge of the instrumented application.

JavaScript code instrumentation (node.js / io.js)

Brief explanation:

LTTng provides a number of agents for Java Util Logging, Log4J and Python tracing support. This project's goal is to develop a new agent which would allow the tracing of JavaScript code from LTTng. A strategy similar to that used by these already existing agents is preferred and students are encouraged to read up on the design of these agents before applying to this project.

Expected results: An agent allowing the tracing of events from JavaScript code

Skill level: Medium-Hard

Prerequisite Knowledge: C and JavaScript development

Babeltrace JavaScript bindings (node.js / io.js)

Brief explanation:

Babeltrace provides a set of bindings to read traces from Python scripts. The goal of this project is to provide similar capabilities to JavaScript code which would allow node.js programs to read CTF traces easily.

Expected results: A set of documented JavaScript bindings for Babeltrace

Skill level: Medium

Prerequisite Knowledge: JavaScript, C and Python development

Updated by Jérémie Galarneau over 9 years ago · 4 revisions