summaryrefslogtreecommitdiffstats
path: root/sunrpc
diff options
context:
space:
mode:
authorSteve Dickson <steved@redhat.com>2011-06-01 09:26:00 -0400
committerSteve Dickson <steved@redhat.com>2011-06-01 09:26:00 -0400
commit6362a5ff268aaed71d56e05fa72195f9cfdce533 (patch)
tree9d585898562b2d50a6fbe00580f6bb0b1cb99523 /sunrpc
parent84a70c37f4bd31a22d7b3a6af1d89dc4771e59a6 (diff)
downloadsystemtap-6362a5ff268aaed71d56e05fa72195f9cfdce533.tar.gz
systemtap-6362a5ff268aaed71d56e05fa72195f9cfdce533.tar.xz
systemtap-6362a5ff268aaed71d56e05fa72195f9cfdce533.zip
Reworked some of the call routines
Signed-off-by: Steve Dickson <steved@redhat.com>
Diffstat (limited to 'sunrpc')
-rw-r--r--sunrpc/call_status.stp47
1 files changed, 41 insertions, 6 deletions
diff --git a/sunrpc/call_status.stp b/sunrpc/call_status.stp
index 9b7bb55..6f9db17 100644
--- a/sunrpc/call_status.stp
+++ b/sunrpc/call_status.stp
@@ -1,27 +1,62 @@
/*
* stap -g -I../tapset call_status.stp
*/
+global transmit, ctask
+
+probe module("sunrpc").function("rpc_call_sync")
+{
+ printf("rpc_call_sync: %s(%d)\n", execname(), pid());
+}
+probe module("sunrpc").function("rpc_call_sync").return
+{
+ if ($return < 0 && $return != -11)
+ printf("rpc_call_sync: %s(%d): status %d\n", execname(), pid(), $return);
+}
+probe module("sunrpc").function("__rpc_execute")
+{
+ ctask = $task;
+ printf("__rpc_execute: %s(%d)\n", execname(), pid());
+}
+probe module("sunrpc").function("__rpc_execute").return
+{
+ terror = task_status(ctask);
+ if (terror && terror != -11)
+ printf("call_connect:%s:%s: error %d (%s)\n",
+ cl_server(ctask), cl_prog(ctask), terror, errno_str(terror));
+}
probe module("sunrpc").function("call_connect_status")
{
- terror = task_status($task);
- if (terror)
+ ctask = $task;
+}
+probe module("sunrpc").function("call_connect_status").return
+{
+ terror = task_status(ctask);
+ if (terror && terror != -11)
printf("call_connect_status:%s:%s: error %d (%s)\n",
- cl_server($task), cl_prog($task), terror, errno_str(terror));
+ cl_server(ctask), cl_prog(ctask), terror, errno_str(terror));
}
probe module("sunrpc").function("call_bind_status")
{
terror = task_status($task);
- if (terror)
+ if (terror && terror != -11)
printf("call_bind_status:%s:%s: error %d (%s)\n",
cl_server($task), cl_prog($task), terror, errno_str(terror));
}
-probe module("sunrpc").function("call_connect_status")
+probe module("sunrpc").function("call_transmit")
{
+ transmit = $task;
terror = task_status($task);
- if (terror)
+ if (terror && terror != -11)
printf("call_connect_status:%s:%s: error %d (%s)\n",
cl_server($task), cl_prog($task), terror, errno_str(terror));
}
+probe module("sunrpc").function("call_transmit").return
+{
+ terror = task_status(transmit);
+ if (terror && terror != -11)
+ printf("call_connect_status:%s:%s: error %d (%s)\n",
+ cl_server(transmit), cl_prog(transmit), terror, errno_str(terror));
+}
/*
probe module("sunrpc").function("xs_tcp_finish_connecting").return
{