From 1cc8a4c78bff79ea8b60e916e5cd01571b469b03 Mon Sep 17 00:00:00 2001 From: William Cohen Date: Fri, 30 Jan 2009 12:33:14 -0500 Subject: Move the scf.stp example from systemtap.samples to systemtap.examples. --- testsuite/ChangeLog | 10 ++++++++++ testsuite/systemtap.examples/index.html | 3 +++ testsuite/systemtap.examples/index.txt | 10 ++++++++++ testsuite/systemtap.examples/interrupt/scf.meta | 13 +++++++++++++ testsuite/systemtap.examples/interrupt/scf.stp | 21 +++++++++++++++++++++ testsuite/systemtap.examples/keyword-index.html | 11 ++++++++++- testsuite/systemtap.examples/keyword-index.txt | 22 ++++++++++++++++++++++ testsuite/systemtap.samples/scf.stp | 25 ------------------------- testsuite/systemtap.samples/scf2.stp | 13 ------------- 9 files changed, 89 insertions(+), 39 deletions(-) create mode 100644 testsuite/systemtap.examples/interrupt/scf.meta create mode 100644 testsuite/systemtap.examples/interrupt/scf.stp delete mode 100644 testsuite/systemtap.samples/scf.stp delete mode 100644 testsuite/systemtap.samples/scf2.stp (limited to 'testsuite') diff --git a/testsuite/ChangeLog b/testsuite/ChangeLog index 879e3529..58fa46bd 100644 --- a/testsuite/ChangeLog +++ b/testsuite/ChangeLog @@ -1,3 +1,13 @@ +2009-01-23 Will Cohen + + * systemtap.samples/scf.stp: + * systemtap.samples/scf2.stp: Remove + * systemtap.examples/interrupt/scf.*: Revised scf.stp. + * systemtap.examples/index.html: + * systemtap.examples/index.txt: + * systemtap.examples/keyword-index.html: + * systemtap.examples/keyword-index.txt: Regenerate. + 2009-01-29 Will Cohen * systemtap.samples/arith*: diff --git a/testsuite/systemtap.examples/index.html b/testsuite/systemtap.examples/index.html index b67aa226..87a5a50e 100644 --- a/testsuite/systemtap.examples/index.html +++ b/testsuite/systemtap.examples/index.html @@ -49,6 +49,9 @@ keywords: SIMPLE
  • general/para-callgraph.stp - Callgraph tracing with arguments
    keywords: TRACE CALLGRAPH

    Print a timed per-thread callgraph, complete with function parameters and return values. The first parameter names the function probe points to trace. The optional second parameter names the probe points for trigger functions, which acts to enable tracing for only those functions that occur while the current thread is nested within the trigger.

  • +
  • interrupt/scf.stp - Tally Backtraces for Inter-Processor Interrupt (IPI)
    +keywords: INTERRUPT BACKTRACE
    +

    The Linux kernel function smp_call_function causes expensive inter-processor interrupts (IPIs). The scf.stp script tallies the processes and backtraces causing the interprocessor interrupts to identify the cause of the expensive IPI. On exit the script prints the tallies in descending frequency.

  • io/disktop.stp - Summarize Disk Read/Write Traffic
    keywords: DISK

    Get the status of reading/writing disk every 5 seconds, output top ten entries during that period.

  • diff --git a/testsuite/systemtap.examples/index.txt b/testsuite/systemtap.examples/index.txt index f45f4c43..5ffc341a 100644 --- a/testsuite/systemtap.examples/index.txt +++ b/testsuite/systemtap.examples/index.txt @@ -27,6 +27,16 @@ keywords: trace callgraph the trigger. +interrupt/scf.stp - Tally Backtraces for Inter-Processor Interrupt (IPI) +keywords: interrupt backtrace + + The Linux kernel function smp_call_function causes expensive + inter-processor interrupts (IPIs). The scf.stp script tallies the + processes and backtraces causing the interprocessor interrupts to + identify the cause of the expensive IPI. On exit the script prints + the tallies in descending frequency. + + io/disktop.stp - Summarize Disk Read/Write Traffic keywords: disk diff --git a/testsuite/systemtap.examples/interrupt/scf.meta b/testsuite/systemtap.examples/interrupt/scf.meta new file mode 100644 index 00000000..1d6ec3d8 --- /dev/null +++ b/testsuite/systemtap.examples/interrupt/scf.meta @@ -0,0 +1,13 @@ +title: Tally Backtraces for Inter-Processor Interrupt (IPI) +name: scf.stp +version: 1.0 +author: William Cohen +keywords: interrupt backtrace +subsystem: kernel +status: production +exit: user-controlled +output: sorted-list +scope: system-wide +description: The Linux kernel function smp_call_function causes expensive inter-processor interrupts (IPIs). The scf.stp script tallies the processes and backtraces causing the interprocessor interrupts to identify the cause of the expensive IPI. On exit the script prints the tallies in descending frequency. +test_check: stap -p4 scf.stp +test_installcheck: stap scf.stp -c "sleep 1" diff --git a/testsuite/systemtap.examples/interrupt/scf.stp b/testsuite/systemtap.examples/interrupt/scf.stp new file mode 100644 index 00000000..f84c2494 --- /dev/null +++ b/testsuite/systemtap.examples/interrupt/scf.stp @@ -0,0 +1,21 @@ +#! /usr/bin/env stap +# scf.stp +# A reimplementation of user script:smp_call_function example given at OLS 2005 +# in the current language. + +global traces + +probe begin { print("Starting probe, type control-c to stop.\n") } + +probe kernel.function("smp_call_function") +{ + traces[pid(), pexecname(), backtrace()] ++ +} + +probe end { + foreach ([pid, name, stack] in traces-) { # sort by frequency encountered + printf ("traces[%d,%s,\n", pid, name) + print_stack (stack) + printf ("] = %d\n", traces[pid, name, stack]); + } +} diff --git a/testsuite/systemtap.examples/keyword-index.html b/testsuite/systemtap.examples/keyword-index.html index 34dedc9a..9ff68c8d 100644 --- a/testsuite/systemtap.examples/keyword-index.html +++ b/testsuite/systemtap.examples/keyword-index.html @@ -39,9 +39,12 @@

    Examples by Keyword

    -

    BACKTRACE CALLGRAPH CPU DISK FUNCTIONS FUTEX GRAPH IO LOCKING NETWORK PER-PROCESS PROFILING READ SCHEDULER SIGNALS SIMPLE SLEEP SOCKET SYSCALL TIME TRACE TRAFFIC USE WAIT4 WRITE

    +

    BACKTRACE CALLGRAPH CPU DISK FUNCTIONS FUTEX GRAPH INTERRUPT IO LOCKING NETWORK PER-PROCESS PROFILING READ SCHEDULER SIGNALS SIMPLE SLEEP SOCKET SYSCALL TIME TRACE TRAFFIC USE WAIT4 WRITE

    BACKTRACE

      +
    • interrupt/scf.stp - Tally Backtraces for Inter-Processor Interrupt (IPI)
      +keywords: INTERRUPT BACKTRACE
      +

      The Linux kernel function smp_call_function causes expensive inter-processor interrupts (IPIs). The scf.stp script tallies the processes and backtraces causing the interprocessor interrupts to identify the cause of the expensive IPI. On exit the script prints the tallies in descending frequency.

    • io/io_submit.stp - Tally Reschedule Reason During AIO io_submit Call
      keywords: IO BACKTRACE

      When a reschedule occurs during an AIO io_submit call, accumulate the traceback in a histogram. When the script exits prints out a sorted list from most common to least common backtrace.

    • @@ -88,6 +91,12 @@ keywords: SYSCALL DISK CPU USE GRAPH

      The script tracks the disk and CPU utilization. The resulting output of the script can be piped into gnuplot to generate a graph of disk and CPU USE.

    +

    INTERRUPT

    +
      +
    • interrupt/scf.stp - Tally Backtraces for Inter-Processor Interrupt (IPI)
      +keywords: INTERRUPT BACKTRACE
      +

      The Linux kernel function smp_call_function causes expensive inter-processor interrupts (IPIs). The scf.stp script tallies the processes and backtraces causing the interprocessor interrupts to identify the cause of the expensive IPI. On exit the script prints the tallies in descending frequency.

    • +

    IO

    • io/io_submit.stp - Tally Reschedule Reason During AIO io_submit Call
      diff --git a/testsuite/systemtap.examples/keyword-index.txt b/testsuite/systemtap.examples/keyword-index.txt index bf35f139..0127f3a8 100644 --- a/testsuite/systemtap.examples/keyword-index.txt +++ b/testsuite/systemtap.examples/keyword-index.txt @@ -3,6 +3,16 @@ SYSTEMTAP EXAMPLES INDEX BY KEYWORD = BACKTRACE = +interrupt/scf.stp - Tally Backtraces for Inter-Processor Interrupt (IPI) +keywords: interrupt backtrace + + The Linux kernel function smp_call_function causes expensive + inter-processor interrupts (IPIs). The scf.stp script tallies the + processes and backtraces causing the interprocessor interrupts to + identify the cause of the expensive IPI. On exit the script prints + the tallies in descending frequency. + + io/io_submit.stp - Tally Reschedule Reason During AIO io_submit Call keywords: io backtrace @@ -93,6 +103,18 @@ keywords: disk cpu use graph and CPU USE. += INTERRUPT = + +interrupt/scf.stp - Tally Backtraces for Inter-Processor Interrupt (IPI) +keywords: interrupt backtrace + + The Linux kernel function smp_call_function causes expensive + inter-processor interrupts (IPIs). The scf.stp script tallies the + processes and backtraces causing the interprocessor interrupts to + identify the cause of the expensive IPI. On exit the script prints + the tallies in descending frequency. + + = IO = io/io_submit.stp - Tally Reschedule Reason During AIO io_submit Call diff --git a/testsuite/systemtap.samples/scf.stp b/testsuite/systemtap.samples/scf.stp deleted file mode 100644 index 1108fdea..00000000 --- a/testsuite/systemtap.samples/scf.stp +++ /dev/null @@ -1,25 +0,0 @@ -# scf.stp -# A reimplementation of user script:smp_call_function example given at OLS 2005 -# in the current language. -# -# Will Cohen -# 9/22/2005 - -global traces - -probe kernel.function("smp_call_function") -{ - traces[pid(), pexecname(), backtrace()] += 1; -} - -probe begin { print( "starting probe\n" ); } - -probe end { - print("end of data collection\n"); - foreach( [pid, name, stack] in traces){ - print( "traces[" . sprint(pid) . "," . name . ",\n" ); - print_stack(stack) - print( "] = " . sprint(traces[pid, name, stack]) ); - print( "\n" ); - } -} diff --git a/testsuite/systemtap.samples/scf2.stp b/testsuite/systemtap.samples/scf2.stp deleted file mode 100644 index 5ad46350..00000000 --- a/testsuite/systemtap.samples/scf2.stp +++ /dev/null @@ -1,13 +0,0 @@ -global traces - -probe kernel.function("smp_call_function") { - traces[pid(), pexecname(), backtrace()] ++ -} -probe timer.ms(1000) { exit () } -probe end { - foreach ([pid+, name, stack] in traces) { # sort by pid - printf ("traces[%d,%s,\n", pid, name) - print_stack (stack) - printf ("] = %d\n", traces[pid, name, stack]); - } -} -- cgit