diff options
-rw-r--r-- | tapset/task.stp | 22 | ||||
-rw-r--r-- | tracepoints/rpc_call_status.stp | 20 |
2 files changed, 34 insertions, 8 deletions
diff --git a/tapset/task.stp b/tapset/task.stp index 76e7c71..6b121be 100644 --- a/tapset/task.stp +++ b/tapset/task.stp @@ -31,6 +31,26 @@ function task_status:long(_task:long) CATCH_DEREF_FAULT(); %} +function cl_prognum:long(_task:long) +%{ + struct rpc_task *task = (struct rpc_task *)(long) kread(&(THIS->_task)); + struct rpc_clnt *clnt = (struct rpc_clnt *)(long) kread(&(task->tk_client)); + + THIS->__retvalue = clnt->cl_prog; + + CATCH_DEREF_FAULT(); +%} + +function cl_vers:long(_task:long) +%{ + struct rpc_task *task = (struct rpc_task *)(long) kread(&(THIS->_task)); + struct rpc_clnt *clnt = (struct rpc_clnt *)(long) kread(&(task->tk_client)); + + THIS->__retvalue = clnt->cl_vers; + + CATCH_DEREF_FAULT(); +%} + function cl_prog:string(_task:long) %{ struct rpc_task *task = (struct rpc_task *)(long) kread(&(THIS->_task)); @@ -45,7 +65,7 @@ function cl_prog:string(_task:long) {100000, "rpcbind"}, {100024, "statd"}, {100011, "rquotad"}, - {100003, "nfsd"}, + {100003, "nfs"}, {100021, "nlockmgr"}, {100005, "mountd"}, {100227, "nfs_acl"}, diff --git a/tracepoints/rpc_call_status.stp b/tracepoints/rpc_call_status.stp index 8018559..37ac5e2 100644 --- a/tracepoints/rpc_call_status.stp +++ b/tracepoints/rpc_call_status.stp @@ -11,22 +11,28 @@ probe kernel.trace("rpc_bind_status") { terror = task_status($task); if (terror) - printf("rpc_bind_status:%s:%s: error %d (%s)\n", - cl_server($task), cl_prog($task), terror, errno_str(terror)); + printf("%s[%d]:rpc_bind_status:%s:%s: error %d (%s)\n", + execname(), pid(), cl_server($task), cl_prog($task), + terror, errno_str(terror)); } probe kernel.trace("rpc_connect_status") { terror = task_status($task); if (terror) - printf("call_connect_status:%s:%s: error %d (%s)\n", - cl_server($task), cl_prog($task), terror, errno_str(terror)); + printf("%s[%d]:call_connect_status:%s:%s: error %d (%s)\n", + execname(), pid(), cl_server($task), cl_prog($task), + terror, errno_str(terror)); } probe kernel.trace("rpc_call_status") { terror = task_status($task); - if (terror) - printf("call_status:%s:%s: error %d (%s)\n", - cl_server($task), cl_prog($task), terror, errno_str(terror)); + /* ingore EAGAIN and ETIMEDOUT */ + if (terror) { + printf("%s[%d]:call_status:%s:%s: error %d (%s)\n", + execname(), pid(), cl_server($task), cl_prog($task), + terror, errno_str(terror)); + } } + probe begin { log("starting rpc call status probe") } probe end { log("ending rpc call status probe") } |