summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tapset/task.stp22
-rw-r--r--tracepoints/rpc_call_status.stp20
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") }