Chapter 7. Compiler and Tools

SystemTap

SystemTap is a tracing and probing tool that allows users to study and monitor the activities of the operating system (particularly, the kernel) in fine detail. It provides information similar to the output of tools like netstat, ps, top, and iostat; however, SystemTap is designed to provide more filtering and analysis options for collected information.

SystemTap in Red Hat Enterprise Linux 5.9 has been updated to version 1.8, providing the following features and enhancements:
  • The SystemTap runtime (staprun) now accepts a -T timeout option to allow less frequent wake-ups to poll for low-throughput output from scripts.
  • When invoked by SystemTap, the kbuild $PATH environment is now sanitized.
  • printf formats are now capable of using the %#c control parameter to escape non-printing characters.
  • Pretty-printed bit fields now use integers; characters now use escaped formatting for printing.
  • The SystemTap compile-server and client now support IPv6 networks.
  • SystemTap modules are now smaller and compile faster. The modules' debuginfo is now suppressed by default.
  • The @var syntax is now an alternative language syntax for accessing DWARF variables in uprobe and kprobe handlers (process, kernel, module).
  • The SystemTap script translator driver (stap) now provides the following resource limit options:
    --rlimit-as=NUM
    --rlimit-cpu=NUM
    --rlimit-nproc=NUM
    --rlimit-stack=NUM
    --rlimit-fsize=NUM
    
  • The SystemTap compile-server now supports multiple concurrent connections.
  • The following tapset function is deprecated in the 1.8 release and will be removed in the 1.9 release:
    daddr_to_string()
    
  • SystemTap now mangles local variables to avoid collisions with C headers included by tapsets.
  • In embedded-C functions, the newly-defined macro STAP_ARG_* should now be used instead of the THIS->* notation.