awk
syntax. This section describes several of the most useful SystemTap handler constructs, which should provide you with enough information to write simple yet useful SystemTap scripts.foo
to gettimeofday_s()
(as in foo = gettimeofday_s()
), then foo
is typed as a number and can be printed in a printf()
with the integer format specifier (%d
).global
outside of the probes. Consider the following example:Example 3.8. timer-jiffies.stp
global count_jiffies, count_ms probe timer.jiffies(100) { count_jiffies ++ } probe timer.ms(100) { count_ms ++ } probe timer.ms(12345) { hz=(1000*count_jiffies) / count_ms printf ("jiffies:ms ratio %d:%d => CONFIG_HZ=%d\n", count_jiffies, count_ms, hz) exit () }
CONFIG_HZ
setting of the kernel using timers that count jiffies and milliseconds, then computing accordingly. The global
statement allows the script to use the variables count_jiffies
and count_ms
(set in their own respective probes) to be shared with probe timer.ms(12345)
.Note
++
notation in Example 3.8, “timer-jiffies.stp” (that is, count_jiffies ++
and count_ms ++
) is used to increment the value of a variable by 1. In the following probe, count_jiffies
is incremented by 1 every 100 jiffies:probe timer.jiffies(100) { count_jiffies ++ }
count_jiffies
is an integer. Because no initial value was assigned to count_jiffies
, its initial value is zero by default.