diff options
author | Steve Dickson <steved@redhat.com> | 2011-06-01 09:26:00 -0400 |
---|---|---|
committer | Steve Dickson <steved@redhat.com> | 2011-06-01 09:26:00 -0400 |
commit | 6362a5ff268aaed71d56e05fa72195f9cfdce533 (patch) | |
tree | 9d585898562b2d50a6fbe00580f6bb0b1cb99523 /sunrpc | |
parent | 84a70c37f4bd31a22d7b3a6af1d89dc4771e59a6 (diff) | |
download | systemtap-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.stp | 47 |
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 { |