summaryrefslogtreecommitdiffstats
path: root/sunrpc
diff options
context:
space:
mode:
authorSteve Dickson <steved@redhat.com>2011-05-29 14:51:37 -0400
committerSteve Dickson <steved@redhat.com>2011-05-29 14:51:37 -0400
commit5d282eec7e97305b6735e84643fdb660fc92de93 (patch)
treeb98b053f46948d61bbc1b15cdb020e8d2f6d3038 /sunrpc
parentefb5e22eb4732a20b1b9fe909be89348aa59ae19 (diff)
downloadsystemtap-5d282eec7e97305b6735e84643fdb660fc92de93.tar.gz
systemtap-5d282eec7e97305b6735e84643fdb660fc92de93.tar.xz
systemtap-5d282eec7e97305b6735e84643fdb660fc92de93.zip
Worked on some the the xprt routines.
Signed-off-by: Steve Dickson <steved@redhat.com>
Diffstat (limited to 'sunrpc')
-rw-r--r--sunrpc/call_status.stp2
-rw-r--r--sunrpc/xprt.stp53
2 files changed, 49 insertions, 6 deletions
diff --git a/sunrpc/call_status.stp b/sunrpc/call_status.stp
index 56976cd..9b7bb55 100644
--- a/sunrpc/call_status.stp
+++ b/sunrpc/call_status.stp
@@ -22,11 +22,13 @@ probe module("sunrpc").function("call_connect_status")
printf("call_connect_status:%s:%s: error %d (%s)\n",
cl_server($task), cl_prog($task), terror, errno_str(terror));
}
+/*
probe module("sunrpc").function("xs_tcp_finish_connecting").return
{
if ($return)
printf("xs_tcp_finish_connecting: error %d (%s)\n",
$return, errno_str($return));
}
+*/
probe begin { log("starting call_status probe") }
probe end { log("ending call_status probe") }
diff --git a/sunrpc/xprt.stp b/sunrpc/xprt.stp
index 34f8fe4..7f2fd48 100644
--- a/sunrpc/xprt.stp
+++ b/sunrpc/xprt.stp
@@ -1,8 +1,8 @@
-global xs_task, trans_task, udp_send_task
+global xs_task, trans_task, udp_send_task, sendpages_sock
probe module("sunrpc").function("xs_connect")
{
- printf("xs_connect: task %p\n", $task);
+ //printf("xs_connect: task %p\n", $task);
xs_task = $task;
//print_backtrace();
}
@@ -14,23 +14,63 @@ probe module("sunrpc").function("xs_tcp_connect")
xs_task = $task;
}
*/
+/*
probe module("sunrpc").function("xprt_connect_status")
{
- printf("xprt_connect_status: task %p\n", $task);
+ printf("xprt_connect_status: %s(%d), task %p\n", execname(), pid(), $task);
}
+*/
probe module("sunrpc").function("xprt_connect_status").return
{
- printf("xprt_connect_status: %s", task_dump(xs_task));
+ printf("xprt_connect_status: %s(%d): %s\n", execname(), pid(), task_dump(xs_task));
}
probe module("sunrpc").function("xprt_transmit")
{
- printf("xprt_transmit: task %p\n", $task);
trans_task = $task;
}
probe module("sunrpc").function("xprt_transmit").return
{
- printf("xprt_transmit: %s", task_dump(trans_task));
+ if (task_status(trans_task) && task_status(trans_task) != -11)
+ printf("xprt_transmit: %s(%d): %s\n\t%s\n", execname(), pid(),
+ task_dump(trans_task), xprt_dump(trans_task));
+}
+probe module("sunrpc").function("xs_tcp_send_request").return
+{
+ if ($return < 0 && $return != -11)
+ printf("xs_tcp_send_request: %s(%d): status %d (%s)\n", execname(), pid(),
+ $return, errno_str($return));
+}
+probe module("sunrpc").function("xs_sendpages")
+{
+ sendpages_sock = $sock
+}
+probe module("sunrpc").function("xs_sendpages").return
+{
+ if ($return < 0 && $return != -11)
+ printf("xs_sendpages: %s(%d): sock %p status %d (%s)\n", execname(), pid(),
+ sendpages_sock, $return, errno_str($return));
+}
+probe module("sunrpc").function("xs_send_kvec").return
+{
+ if ($return < 0 && $return != -11)
+ printf("xs_send_kvec: %s(%d): status %d (%s)\n", execname(), pid(),
+ $return, errno_str($return));
}
+/*
+probe module("sunrpc").function("xs_send_pagedata").return
+{
+ if ($return < 0)
+ printf("xs_send_pagedata: %s(%d): status %d (%s)\n", execname(), pid(),
+ $return, errno_str($return));
+}
+*/
+probe kernel.function("kernel_sendmsg").return
+{
+ if ($return < 0)
+ printf("kernel_sendmsg: %s(%d): status %d (%s)\n", execname(), pid(),
+ $return, errno_str($return));
+}
+/*
probe module("sunrpc").function("xs_udp_send_request")
{
printf("xs_udp_send_request: task %p\n", $task);
@@ -45,6 +85,7 @@ probe module("sunrpc").function("xs_bind4").return
{
printf("xs_bind4: %d %s\n", $return, errno_str($return));
}
+*/
probe begin { log("starting xprt probe") }
probe end { log("ending xprt probe") }