diff options
author | Steve Dickson <steved@redhat.com> | 2010-02-25 11:33:55 -0500 |
---|---|---|
committer | Steve Dickson <steved@redhat.com> | 2010-02-25 11:33:55 -0500 |
commit | 81da09fee0a5fcb85c5e5b098a5919839b939c57 (patch) | |
tree | b923d534dfee555a15d2121cf6fef92bb2eae9e8 | |
parent | 6be80943cc84cdb08c51f528aec5b59a9fdb3d30 (diff) | |
download | systemtap-steved-81da09fee0a5fcb85c5e5b098a5919839b939c57.tar.gz systemtap-steved-81da09fee0a5fcb85c5e5b098a5919839b939c57.tar.xz systemtap-steved-81da09fee0a5fcb85c5e5b098a5919839b939c57.zip |
Updated the sunrpc.clnt.create_client prob
In recent kernels, the client create code has been
consolidated to a single routine. This patch reworks
the probe to work with the current code.
Signed-off-by: Steve Dickson <steved@redhat.com>
-rw-r--r-- | tapset/rpc.stp | 35 |
1 files changed, 30 insertions, 5 deletions
diff --git a/tapset/rpc.stp b/tapset/rpc.stp index 3e65d0ea..b2093be8 100644 --- a/tapset/rpc.stp +++ b/tapset/rpc.stp @@ -71,6 +71,7 @@ probe sunrpc.clnt.return = * @port: the port number * @authflavor: the authentication flavor */ +%( kernel_v <= "2.6.18" %? probe sunrpc.clnt.create_client = _sunrpc.clnt.create_client.* { servername = kernel_string($servname) @@ -80,7 +81,6 @@ probe sunrpc.clnt.create_client = _sunrpc.clnt.create_client.* prog, vers, prot, port, authflavor) } -%( kernel_v <= "2.6.18" %? probe _sunrpc.clnt.create_client.part1 = kernel.function("rpc_create_client") !, module("sunrpc").function("rpc_create_client") { @@ -97,7 +97,6 @@ probe _sunrpc.clnt.create_client.part1 = kernel.function("rpc_create_client") !, authflavor = $flavor %) } -%) probe _sunrpc.clnt.create_client.part2 = kernel.function("rpc_new_client") !, module("sunrpc").function("rpc_new_client") @@ -108,20 +107,31 @@ probe _sunrpc.clnt.create_client.part2 = kernel.function("rpc_new_client") !, vers = vers_from_prog($program, $vers) authflavor = $flavor } +%: +probe sunrpc.clnt.create_client = kernel.function("rpc_new_client") !, + module("sunrpc").function("rpc_new_client") +{ + progname = kernel_string($args->program->name) + servername = kernel_string($args->servername); + prog = $args->program->number + vers = vers_from_prog($args->program, $args->version) + authflavor = $args->authflavor +} +%) +%( kernel_v <= "2.6.18" %? probe sunrpc.clnt.create_client.return = _sunrpc.clnt.create_client.return.* { + name = "sunrpc.clnt.new_client.return" retstr = returnstr(2) } -%( kernel_v <= "2.6.18" %? probe _sunrpc.clnt.create_client.return.part1 = kernel.function("rpc_create_client").return !, module("sunrpc").function("rpc_create_client").return { name = "sunrpc.clnt.create_client.return" } -%) probe _sunrpc.clnt.create_client.return.part2 = kernel.function("rpc_new_client").return !, @@ -129,6 +139,14 @@ probe _sunrpc.clnt.create_client.return.part2 = { name = "sunrpc.clnt.new_client.return" } +%: +probe sunrpc.clnt.create_client.return = kernel.function("rpc_new_client") !, + module("sunrpc").function("rpc_new_client") +{ + name = "sunrpc.clnt.new_client.return" + retstr = returnstr(2) +} +%) /* * Fires when the RPC client structure is to be cloned @@ -749,12 +767,19 @@ probe sunrpc.sched.return = probe sunrpc.sched.new_task = kernel.function("rpc_new_task") !, module("sunrpc").function("rpc_new_task") { +%( kernel_v <= "2.6.24" %? xid = xid_from_clnt($clnt) prog = prog_from_clnt($clnt) vers = vers_from_clnt($clnt) prot = prot_from_clnt($clnt) flags = $flags - +%: + xid = xid_from_clnt($setup_data->rpc_client) + prog = prog_from_clnt($setup_data->rpc_client) + vers = vers_from_clnt($setup_data->rpc_client) + prot = prot_from_clnt($setup_data->rpc_client) + flags = $setup_data->flags +%) name = "sunrpc.sched.new_task" argstr = sprintf("%d %d %d %d %d", xid, prog, vers, prot, flags) } |