diff options
| author | Steve Dickson <steved@redhat.com> | 2009-04-02 18:15:00 -0400 |
|---|---|---|
| committer | Steve Dickson <steved@redhat.com> | 2009-04-02 18:15:00 -0400 |
| commit | 7d945a5e61fcae70cf072cea5cbcef4e45d0c92a (patch) | |
| tree | 8bf3040d6a2f380884685f1ead08cd6ac889d9df /sunrpc | |
| parent | 22fed7bfcd58bb39862dbf7b8bc1d6c532d139c8 (diff) | |
| download | systemtap-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.stp | 7 | ||||
| -rw-r--r-- | sunrpc/sunrpc-xprtsock.stp | 14 |
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") |
