summaryrefslogtreecommitdiffstats
path: root/testsuite/systemtap.examples/memory
diff options
context:
space:
mode:
authorDave Brolley <brolley@redhat.com>2009-07-10 11:10:51 -0400
committerDave Brolley <brolley@redhat.com>2009-07-10 11:10:51 -0400
commit1e9ab8199dff90c1b6e7290f0f7b4eb424a9ff9f (patch)
treea0c10b78ad3e7142a59ffd6f6e75b75abf90d88e /testsuite/systemtap.examples/memory
parent7d54db1a2c0b3831b6fbc8282f1155426c4be540 (diff)
parentc728b7da8be430367aa33f9fbacda93d4add9ea2 (diff)
downloadsystemtap-steved-1e9ab8199dff90c1b6e7290f0f7b4eb424a9ff9f.tar.gz
systemtap-steved-1e9ab8199dff90c1b6e7290f0f7b4eb424a9ff9f.tar.xz
systemtap-steved-1e9ab8199dff90c1b6e7290f0f7b4eb424a9ff9f.zip
Merge branch 'master' of ssh://sources.redhat.com/git/systemtap
Diffstat (limited to 'testsuite/systemtap.examples/memory')
-rw-r--r--testsuite/systemtap.examples/memory/numa_faults.meta13
-rwxr-xr-xtestsuite/systemtap.examples/memory/numa_faults.stp38
2 files changed, 51 insertions, 0 deletions
diff --git a/testsuite/systemtap.examples/memory/numa_faults.meta b/testsuite/systemtap.examples/memory/numa_faults.meta
new file mode 100644
index 00000000..34034bef
--- /dev/null
+++ b/testsuite/systemtap.examples/memory/numa_faults.meta
@@ -0,0 +1,13 @@
+title: Summarize Process Misses across NUMA Nodes
+name: numa_faults.stp
+version: 1.0
+author: IBM
+keywords: memory numa
+subsystem: memory
+status: production
+exit: user-controlled
+output: list
+scope: system-wide
+description: The numa_faults.stp script tracks the read and write pages faults for each process. When the script exits it prints out the total read and write pages faults for each process. The script also providea a break down of page faults per node for each process. This script is useful for determining whether the program has good locality (page faults limited to a single node) on a NUMA computer.
+test_check: stap -p4 numa_faults.stp
+test_installcheck: stap numa_faults.stp -c "sleep 1"
diff --git a/testsuite/systemtap.examples/memory/numa_faults.stp b/testsuite/systemtap.examples/memory/numa_faults.stp
new file mode 100755
index 00000000..34a0ace7
--- /dev/null
+++ b/testsuite/systemtap.examples/memory/numa_faults.stp
@@ -0,0 +1,38 @@
+#! /usr/bin/env stap
+
+global execnames, page_faults, node_faults, nodes
+
+probe vm.pagefault {
+ p = pid(); n=addr_to_node(address)
+ execnames[p] = execname()
+ page_faults[p, write_access ? 1 : 0] <<< 1
+ node_faults[p, n] <<< 1
+ nodes[n] <<< 1
+}
+
+function print_pf () {
+ printf ("\n")
+ printf ("%-16s %-6s %10s %10s %-20s\n",
+ "Execname", "PID", "RD Faults", "WR Faults", "Node:Faults")
+ print ("======================= ========== ========== =============\n")
+ foreach (pid in execnames) {
+ printf ("%-16s %6d %10d %10d ", execnames[pid], pid,
+ @count(page_faults[pid,0]), @count(page_faults[pid,1]))
+ foreach ([node+] in nodes) {
+ if ([pid, node] in node_faults)
+ printf ("%d:%d ", node, @count(node_faults[pid, node]))
+ }
+ printf ("\n")
+ }
+ printf("\n")
+}
+
+probe begin {
+ printf("Starting pagefault counters \n")
+}
+
+probe end {
+ printf("Printing counters: \n")
+ print_pf ()
+ printf("Done\n")
+}