summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwcohen <wcohen>2007-04-24 15:21:01 +0000
committerwcohen <wcohen>2007-04-24 15:21:01 +0000
commitd113ceaefa4dc24df10ffa1591e2315c1268b759 (patch)
tree34b11ceeb534d762a42d1a8f5e4361bff0b7c178
parenta50cc2c401fc7e8ec084fe129aa420f42cbc78bd (diff)
downloadsystemtap-steved-d113ceaefa4dc24df10ffa1591e2315c1268b759.tar.gz
systemtap-steved-d113ceaefa4dc24df10ffa1591e2315c1268b759.tar.xz
systemtap-steved-d113ceaefa4dc24df10ffa1591e2315c1268b759.zip
* tapset/memory.stp: Add matching vm.pagefault.return
* testsuite/buildok/memory.stp: Test vm.pagefault.return.
-rw-r--r--ChangeLog5
-rw-r--r--tapset/memory.stp17
-rwxr-xr-xtestsuite/buildok/memory.stp5
3 files changed, 27 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 3acc8067..e41c60a6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2007-04-24 Will Cohen <wcohen@redhat.com>
+
+ * tapset/memory.stp: Add matching vm.pagefault.return
+ * testsuite/buildok/memory.stp: Test vm.pagefault.return.
+
2007-04-24 Martin Hunt <hunt@redhat.com>
* stp_check.in: More tweaking of mount statement.
diff --git a/tapset/memory.stp b/tapset/memory.stp
index a3ed628f..61c77dff 100644
--- a/tapset/memory.stp
+++ b/tapset/memory.stp
@@ -26,6 +26,23 @@ probe vm.pagefault = kernel.function(
address = $address
}
+/* probe vm.pagefault.return
+ *
+ * Records type of fault that occurred.
+ *
+ * Context:
+ * The process which triggered the fault.
+ *
+ * Arguments:
+ * fault_type - type of fault
+ */
+probe vm.pagefault.return = kernel.function(
+ %( kernel_v >= "2.6.13" %? "__handle_mm_fault" %: "handle_mm_fault" %)
+ ).return
+{
+ fault_type = $return
+}
+
/* Return which node the given address belongs to in a NUMA system */
function addr_to_node:long(addr:long) /* pure */
%{
diff --git a/testsuite/buildok/memory.stp b/testsuite/buildok/memory.stp
index ce9f28cb..12d4e4a7 100755
--- a/testsuite/buildok/memory.stp
+++ b/testsuite/buildok/memory.stp
@@ -3,3 +3,8 @@ probe vm.pagefault
{
printf("ppname: %s, %d, %p\n", probefunc(), write_access, address)
}
+
+probe vm.pagefault.return
+{
+ printf("ppname: %s, %d\n", probefunc(), fault_type)
+}