diff options
| -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") |
