Trisha Shetty (Editor)

SystemTap

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit
Developer(s)
  
Various

Operating system
  
Linux kernel

Initial release
  
2005 (2005)

SystemTap

Stable release
  
3.1 / February 17, 2017; 40 days ago (2017-02-17)

Written in
  
C, C++, custom scripting

Type
  
Tracing programming language

In computing, SystemTap (stap) is a scripting language and tool for dynamically instrumenting running production Linux kernel-based operating systems. System administrators can use SystemTap to extract, filter and summarize data in order to enable diagnosis of complex performance or functional problems.

Contents

SystemTap consists of free and open-source software and includes contributions from Red Hat, IBM, Intel, Hitachi, Oracle, and other community members.

History

SystemTap debuted in 2005 in Red Hat Enterprise Linux 4 Update 2 as a technology preview.

After four years in development, SystemTap 1.0 was released in 2009.

As of 2011 SystemTap runs fully supported in all Linux distributions including RHEL / CentOS 5 since update 2, SLES 10, Fedora, Debian and Ubuntu.

Tracepoints in the CPython VM and JVM were added in SystemTap 1.2.

Usage

SystemTap files written in the SystemTap language (based on the language reference.) run with the stap command-line and are saved as .stp files. The system carries out a number of passes on the script before allowing it to run, at which point the script is compiled into a loadable kernel module and loaded into the kernel. Listing modules shows each SystemTap script as stap_<UUID>. The module is unloaded when the tap has finished running.

Scripts generally focus on events (such as starting or finishing a script), compiled-in probe points such as Linux "tracepoints", or the execution of functions or statements in the kernel or user-space.

Some "guru mode" scripts may also have embedded C, which may run with the -g command-line option. However, use of guru mode is discouraged, and each SystemTap release includes more probe points designed to remove the need for guru-mode taps.

As of systemtap release 1.7 the software implements the new stapsys group and privilege level.

Simple examples

The following script shows all applications setting TCP socket options on the system, what options are being set, and whether the option is set successfully or not:

Many other examples are shipped with SystemTap. There are also real-world examples of SystemTap use at the War Stories page.

Importing scripts from other tracing technologies

SystemTap can attach to DTrace markers when they are compiled into an application using macros from the sys/sdt.h header file.

References

SystemTap Wikipedia