]> sourceware.org Git - systemtap.git/commitdiff
Tracepoint based tapset for memory subsystem.
authorRajasekhar Duddu <rajduddu@linux.vnet.ibm.com>
Mon, 21 Dec 2009 11:40:54 +0000 (17:10 +0530)
committerPrerna Saxena <prerna@linux.vnet.ibm.com>
Mon, 21 Dec 2009 11:40:54 +0000 (17:10 +0530)
testsuite/buildok/vm.tracepoints.stp [new file with mode: 0644]
testsuite/systemtap.examples/memory/vm.tracepoints.meta [new file with mode: 0644]
testsuite/systemtap.examples/memory/vm.tracepoints.stp [new file with mode: 0644]

diff --git a/testsuite/buildok/vm.tracepoints.stp b/testsuite/buildok/vm.tracepoints.stp
new file mode 100644 (file)
index 0000000..488ca0f
--- /dev/null
@@ -0,0 +1,31 @@
+#! stap -up4
+
+probe vm.kfree {
+        println(name)
+        printf("%-15s %-15p %-15s %-15p \n", execname(), call_site, caller_function, ptr)
+}
+
+probe vm.kmalloc {
+        println(name)
+        printf("%-15s %-15p %-15s %-15p %-15d %-15d %-15d %-15s \n", execname(), call_site, caller_function, ptr, bytes_req, bytes_alloc, gfp_flags, gfp_flag_name)
+}
+
+probe vm.kmem_cache_alloc {
+        println(name)
+        printf("%-15s %-15p %-15s %-15p %-15d %-15d %-15d %-15s \n", execname(), call_site, caller_function, ptr, bytes_req, bytes_alloc, gfp_flags, gfp_flag_name)
+}
+
+probe vm.kmalloc_node {
+        println(name)
+        printf("%-15s %-15p %-15s %-15p %-15d %-15d %-15d %-15s \n", execname(), call_site, caller_function, ptr, bytes_req, bytes_alloc, gfp_flags, gfp_flag_name)
+}
+
+probe vm.kmem_cache_alloc_node {
+        println(name)
+        printf("%-15s %-15p %-15s %-15p %-15d %-15d %-15d %-15s \n", execname(), call_site, caller_function, ptr, bytes_req, bytes_alloc, gfp_flags, gfp_flag_name)
+}
+
+probe vm.kmem_cache_free {
+        println(name)
+        printf("%-15s %-15p %-15s %-15p \n", execname(), call_site, caller_function, ptr)
+}
diff --git a/testsuite/systemtap.examples/memory/vm.tracepoints.meta b/testsuite/systemtap.examples/memory/vm.tracepoints.meta
new file mode 100644 (file)
index 0000000..9fdb73f
--- /dev/null
@@ -0,0 +1,13 @@
+title: Collect slab allocation statistics
+name: vm.tracepoints.stp
+version: 1.0
+author: Rajasekhar
+keywords: memory slab allocator
+subsystem: memory
+status: production
+exit: user-controlled
+output: sorted-list
+scope: system-wide
+description: The script will probe all memory slab/slub allocations and collects information about the size of the object (bytes requested) and user-space process in execution. When run over a period of time, it helps to correlate kernel-space memory consumption owing to user-space processes.
+test_check: stap -p4 vm.tracepoints.stp
+test_installcheck: stap vm.tracepoints.stp -c "sleep 10"
diff --git a/testsuite/systemtap.examples/memory/vm.tracepoints.stp b/testsuite/systemtap.examples/memory/vm.tracepoints.stp
new file mode 100644 (file)
index 0000000..07cee6f
--- /dev/null
@@ -0,0 +1,18 @@
+global slabs
+
+probe vm.kmem_cache_alloc {
+       slabs [execname(), bytes_req]<<<1
+}
+
+probe timer.ms(10000)
+{
+       dummy = "";
+       foreach ([name, bytes] in slabs) {
+               if (dummy != name)
+                       printf("\nProcess:%s\n", name);
+               printf("Slab_size:%d\tCount:%d\n", bytes, @count(slabs[name, bytes]));
+               dummy = name;
+       }
+       delete slabs
+       printf("\n-------------------------------------------------------\n\n")
+}
This page took 0.031739 seconds and 5 git commands to generate.