summaryrefslogtreecommitdiffstats
path: root/testsuite/systemtap.examples/memory/numa_faults.stp
diff options
context:
space:
mode:
authorWilliam Cohen <wcohen@redhat.com>2009-07-10 10:34:13 -0400
committerWilliam Cohen <wcohen@redhat.com>2009-07-10 10:34:13 -0400
commitc728b7da8be430367aa33f9fbacda93d4add9ea2 (patch)
tree5d76f646d43b78ee5b15e4c09483da127ecfcdc0 /testsuite/systemtap.examples/memory/numa_faults.stp
parent880fc23fa180ae9c9557e7ff945f5f1e750aef15 (diff)
downloadsystemtap-steved-c728b7da8be430367aa33f9fbacda93d4add9ea2.tar.gz
systemtap-steved-c728b7da8be430367aa33f9fbacda93d4add9ea2.tar.xz
systemtap-steved-c728b7da8be430367aa33f9fbacda93d4add9ea2.zip
Add numa_faults.stp example.
Diffstat (limited to 'testsuite/systemtap.examples/memory/numa_faults.stp')
-rwxr-xr-xtestsuite/systemtap.examples/memory/numa_faults.stp38
1 files changed, 38 insertions, 0 deletions
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")
+}