summaryrefslogtreecommitdiffstats
path: root/sunrpc
diff options
context:
space:
mode:
authorSteve Dickson <steved@redhat.com>2009-04-02 18:15:00 -0400
committerSteve Dickson <steved@redhat.com>2009-04-02 18:15:00 -0400
commit7d945a5e61fcae70cf072cea5cbcef4e45d0c92a (patch)
tree8bf3040d6a2f380884685f1ead08cd6ac889d9df /sunrpc
parent22fed7bfcd58bb39862dbf7b8bc1d6c532d139c8 (diff)
downloadsystemtap-7d945a5e61fcae70cf072cea5cbcef4e45d0c92a.tar.gz
systemtap-7d945a5e61fcae70cf072cea5cbcef4e45d0c92a.tar.xz
systemtap-7d945a5e61fcae70cf072cea5cbcef4e45d0c92a.zip
Added call_bind_status prob
Signed-off-by: Steve Dickson <steved@redhat.com>
Diffstat (limited to 'sunrpc')
-rw-r--r--sunrpc/force_rebind.stp7
-rw-r--r--sunrpc/sunrpc-xprtsock.stp14
2 files changed, 19 insertions, 2 deletions
diff --git a/sunrpc/force_rebind.stp b/sunrpc/force_rebind.stp
index 4fbeb1d..cd288a2 100644
--- a/sunrpc/force_rebind.stp
+++ b/sunrpc/force_rebind.stp
@@ -79,6 +79,13 @@ probe module("sunrpc").function("rpc_force_rebind")
{
printf("rpc_force_rebind: clnt %p\n", $clnt);
}
+probe module("sunrpc").function("call_bind_status")
+{
+ terror = task_status($task);
+ if (terror)
+ printf("call_bind_status:%s:%s: error %d (%s)\n",
+ cl_server($task), cl_prog($task), terror, errno_str(terror));
+}
probe begin { log("starting rpc_force_rebind probe") }
probe end { log("ending rpc_force_rebind probe") }
diff --git a/sunrpc/sunrpc-xprtsock.stp b/sunrpc/sunrpc-xprtsock.stp
index b76a9b7..a6433d6 100644
--- a/sunrpc/sunrpc-xprtsock.stp
+++ b/sunrpc/sunrpc-xprtsock.stp
@@ -27,6 +27,16 @@ function rpcb_status:long(_rpc:long)
CATCH_DEREF_FAULT();
%}
+function rpcb_proc:string(_rpc:long)
+%{
+ struct rpcbind_args *rpc =
+ (struct rpcbind_args *)(long) kread(&(THIS->_rpc));
+
+ snprintf(THIS->__retvalue, MAXSTRINGLEN, "%d:%d:%d",
+ rpc->r_prog, rpc->r_vers, rpc->r_prot);
+
+ CATCH_DEREF_FAULT();
+%}
function task_status:long(_task:long)
%{
struct rpc_task *task = (struct rpc_task *)(long) kread(&(THIS->_task));
@@ -89,8 +99,8 @@ probe module("sunrpc").function("rpcb_getport_done")
probe module("sunrpc").function("rpcb_getport_done").return
{
if (rpcb_status(rpc_args))
- printf("%s(%d): rpcb_getport_done: rpcbind status %d\n",
- execname(), pid(), rpcb_status(rpc_args));
+ printf("%s(%d): rpcb_getport_done: rpcbind: %s: status %d\n",
+ execname(), pid(), rpcb_proc(rpc_args), rpcb_status(rpc_args));
}
global xstcp_task
probe module("sunrpc").function("xs_tcp_connect")