diff options
| author | Steve Dickson <steved@redhat.com> | 2008-05-14 12:54:58 -0400 |
|---|---|---|
| committer | Steve Dickson <steved@redhat.com> | 2008-05-14 12:54:58 -0400 |
| commit | c1219627e96c121a5a7f69a19c44c5fc98c8ab77 (patch) | |
| tree | 282df271c977459adadfc675af10b22a3eea438c | |
| parent | 06b10622ae9c1bb929d088ed7f0faa33eac18503 (diff) | |
| download | systemtap-c1219627e96c121a5a7f69a19c44c5fc98c8ab77.tar.gz systemtap-c1219627e96c121a5a7f69a19c44c5fc98c8ab77.tar.xz systemtap-c1219627e96c121a5a7f69a19c44c5fc98c8ab77.zip | |
Added in nfs_auth.stp tapset/task.stp xprt.stp
| -rw-r--r-- | nfs_auth.stp | 11 | ||||
| -rw-r--r-- | tapset/task.stp | 23 | ||||
| -rw-r--r-- | xprt.stp | 44 |
3 files changed, 78 insertions, 0 deletions
diff --git a/nfs_auth.stp b/nfs_auth.stp new file mode 100644 index 0000000..c7fc739 --- /dev/null +++ b/nfs_auth.stp @@ -0,0 +1,11 @@ +probe module("auth_rpcgss").function("gss_create") +{ + printf("gss_create: clnt %p flavor %d\n", $clnt, $flavor); +} +probe module("auth_rpcgss").function("gss_create").return +{ + printf("gss_create: %p\n", $return); +} + +probe begin { log("starting nfs_auth probe") } +probe end { log("ending nfs_auth probe") } diff --git a/tapset/task.stp b/tapset/task.stp new file mode 100644 index 0000000..d409a96 --- /dev/null +++ b/tapset/task.stp @@ -0,0 +1,23 @@ +%{ +#include <linux/kernel.h> +#include <linux/sunrpc/clnt.h> +#include <linux/sunrpc/svc.h> +%} + +function task_dump:string(_task:long) +%{ + struct rpc_task *task = (struct rpc_task *)(long) kread(&(THIS->_task)); + char buf[MAXSTRINGLEN]; + int cc=0; + + if (task <= 0) { + sprintf(buf+cc, "task NULL"); + } else { + sprintf(buf+cc, "task %p tk_pid %d tk_status %d\n", + task, task->tk_pid, task->tk_status); + cc = strlen(buf); + } + snprintf(THIS->__retvalue, MAXSTRINGLEN, "%s", buf); + + CATCH_DEREF_FAULT(); +%} diff --git a/xprt.stp b/xprt.stp new file mode 100644 index 0000000..b6a0c73 --- /dev/null +++ b/xprt.stp @@ -0,0 +1,44 @@ +global xs_task, trans_task, udp_send_task + +probe module("sunrpc").function("xs_connect") +{ + printf("xs_connect: task %p\n", $task); + xs_task = $task; + //print_backtrace(); +} +probe module("sunrpc").function("xs_tcp_connect") +{ + printf("xs_tcp_connect: task %p\n", $task); + //print_backtrace(); + xs_task = $task; +} +probe module("sunrpc").function("xprt_connect_status") +{ + printf("xprt_connect_status: task %p\n", $task); +} +probe module("sunrpc").function("xprt_connect_status").return +{ + printf("xprt_connect_status: %s", task_dump(xs_task)); +} +probe module("sunrpc").function("xprt_transmit") +{ + printf("xprt_transmit: task %p\n", $task); + trans_task = $task; +} +probe module("sunrpc").function("xprt_transmit").return +{ + printf("xprt_transmit: %s", task_dump(trans_task)); +} +probe module("sunrpc").function("xs_udp_send_request") +{ + printf("xs_udp_send_request: task %p\n", $task); + udp_send_task = $task; +} +probe module("sunrpc").function("xs_udp_send_request").return +{ + if ($return) + printf("xs_udp_send_request: %d (%s)\n", $return, errno_str($return)); +} +probe begin { log("starting xprt probe") } +probe end { log("ending xprt probe") } + |
