1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
/*
* stap -g -I ../tapset rpc_call_status.stp
*/
%{
#include <linux/sunrpc/svc.h>
#include <linux/sunrpc/sched.h>
#include <linux/sunrpc/clnt.h>
%}
probe kernel.trace("rpc_bind_status")
{
terror = task_status($task);
if (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("%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);
/* 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") }
|