Features/SystemtapTracingRefresh

From FedoraProject

Jump to: navigation, search


Contents

Systemtap Tracing Refresh

Summary

New and improved systemtap (1.0 release) with much better documentation, examples and tools. Updated to take advantage of new features integrated into Fedora 12, gcc debuginfo (variable tracking assignment) output, kernel 2.6.31 (tracepoints), Eclipse GUI. And providing a static user space marker implementation to be used by developers wanting to expose high level tracing events in their applications (already used for postgresql and java in Fedora 12, with more application integration scheduled for Fedora 13).

Owner

Current status

Detailed Description

By packaging a new version of systemtap, that is tuned for updated gcc debuginfo (dwarf variable tracking assignments) output, kernel (2.6.31) tracepoints, better examples, tools and development extensions that enable programmers to embed static probe markers in their sources Fedora users will be able to have much better observability of their whole system.

Benefit to Fedora

It will be easier for developers and users to observe what is really happening on their system.

Scope

Most of this work has been done upstream and by coordinating with the gcc and kernel maintainers for better debuginfo output and more tracepoints. Specific improvements that will be delivered through this feature are:

This feature will also be the basis for adding more static probing to fedora packages in general. Some packages already have those enabled (java, postgresql) and we will coordinate with those maintainers to make those probes work seamlessly with the other systemtap improvements. Integration of more static probes to other packages is outside the scope of this feature though. That will be done through the Systemtap Static Probes Feature.

How To Test

Whether systemtap and the kernel or a user space application are working in general can be tested by installing systemtap, and the kernel-debuginfo and/or the application debuginfo. There is also the systemtap-testsuite package. Installing that and running sudo make installcheck in /usr/share/systemtap/testsuite gives an overview of how well tracing is working in general on the system.

TODO Add specific examples of interesting traces of kernel and apllications and them to a testing page listing:

Question: Is there a convention/template for adding such test pages for test days?

Answer: See test day proposal process at QA/Test_Days/Create - jlaska 12:07, 20 July 2009 (UTC)

User Experience

When installing debuginfo for packages users will be able to trace on a low level what those applications (and/or the kernel) is doing.

Dependencies

Needs some coordination with gcc (to sync on debuginfo improvements), elfutils (for some new features taking advantage of the gcc debuginfo improvements) and kernel (for new tracepoints included). All this is being done already upstream, for fedora we just need to make sure the latest versions are packaged. For packages that already have static markers enabled (java and postgresql) some testing of the results between package updates will be necessary to make sure the user experience is as smooth as can be.

Contingency Plan

Some of the features listed in the scope might not be fully completed, but that just means less functionality for the end user to observe certain behaviour is limited. Except for the risk that systemtap works less well than desirable there is no impact on other packages.

Documentation

The upstream website has lots of documentation and examples.

Release Notes

Systemtap has been extended to better support user space tracing, kernel tracepoints, take advantage of modern gcc debuginfo (dwarf) output and providing a static user space marker implementation to be used by developers wanting to expose high level tracing events in their applications. This enables users, developers and administrators a low level overview of what is going on with their kernel or deep down in a specific program or subsystem.

Systemtap comes with a tutorial, a language reference manual, a tapsets reference and an examples directory under /usr/share/doc/systemtap-?.?/

Comments and Discussion