diff options
author | Steve Dickson <steved@redhat.com> | 2011-11-12 08:55:42 -0500 |
---|---|---|
committer | Steve Dickson <steved@redhat.com> | 2011-11-12 08:55:42 -0500 |
commit | 8dc5f487ec8f810704bdc70191d7b4e71f5f6174 (patch) | |
tree | ae615a846f68fec6e34b08b73150b4369c2c5be5 | |
parent | 1fab51bf18976626f580d99349eee1b6008c6a77 (diff) | |
download | systemtap-8dc5f487ec8f810704bdc70191d7b4e71f5f6174.tar.gz systemtap-8dc5f487ec8f810704bdc70191d7b4e71f5f6174.tar.xz systemtap-8dc5f487ec8f810704bdc70191d7b4e71f5f6174.zip |
Added key ring probs
Signed-off-by: Steve Dickson <steved@redhat.com>
-rw-r--r-- | nfs/nfs_idmap.stp | 86 | ||||
-rw-r--r-- | tapset/iserr.stp | 11 | ||||
-rw-r--r-- | tapset/key.stp | 12 |
3 files changed, 109 insertions, 0 deletions
diff --git a/nfs/nfs_idmap.stp b/nfs/nfs_idmap.stp new file mode 100644 index 0000000..5591f13 --- /dev/null +++ b/nfs/nfs_idmap.stp @@ -0,0 +1,86 @@ +probe module("nfs").function("nfs_map_name_to_uid").return +{ + if ($return < 0) + printf("nfs_map_name_to_uid: '%s' --> %d(%s)\n", kernel_string($name), + $return, errno_str($return)); + else + printf("nfs_map_name_to_uid: '%s' --> %d\n", kernel_string($name), $return); +} +probe module("nfs").function("nfs_idmap_request_key").return +{ + if ($return < 0) + printf(" nfs_idmap_request_key: %d(%s)\n", $return, errno_str($return)); + else + printf(" nfs_idmap_request_key: %d\n", $return); +} +probe kernel.function("call_sbin_request_key").return +{ + if ($return < 0) + printf(" call_sbin_request_key: %d(%s)\n", $return, errno_str($return)); + else + printf(" call_sbin_request_key: %d\n", $return); +} +probe kernel.function("call_usermodehelper_exec").return +{ + if ($return < 0) + printf(" call_usermodehelper_exec: %d(%s)\n", $return, errno_str($return)); + else + printf(" call_usermodehelper_exec: %d\n", $return); +} +probe kernel.function("call_usermodehelper_setup").return +{ + if (is_err($return)) + printf(" call_usermodehelper_setup: path %s %ld(%s)\n", + kernel_string($path), $return, errno_str($return)); + else + printf(" call_usermodehelper_setup: path %s\n argv %s %s %s %s %s %s %s %s\n", + kernel_string($path), kernel_string($argv[0]), kernel_string($argv[1]), + kernel_string($argv[2]), kernel_string($argv[3]), kernel_string($argv[4]), + kernel_string($argv[5]), kernel_string($argv[6]), kernel_string($argv[7])); +} +probe kernel.function("request_key_and_link") +{ + printf(" request_key_and_link: type %s desc %s callout %p(%d)\n", + key_type($type), kernel_string($description), $callout_info, $callout_len); +} +probe kernel.function("request_key_and_link").return +{ + if (is_err($return)) + printf(" request_key_and_link: desc %s %ld(%s)\n", + kernel_string($description), $return, errno_str($return)); + else + printf(" request_key_and_link: desc %s %p\n", + kernel_string($description), $return); +} +/* +probe kernel.function("key_user_lookup").return +{ + if (is_err($return)) + printf(" key_user_lookup: uid %d %ld(%s)\n", + $uid, $return, errno_str($return)); + else + printf(" key_user_lookup: uid %d %p\n", + $uid, $return); +} +probe kernel.function("search_process_keyrings").return +{ + if (is_err($return)) + printf(" search_process_keyrings: %ld (%s)\n", $return, errno_str($return)); + else + printf(" search_process_keyrings: %p\n", $return); +} +probe kernel.function("search_my_process_keyrings").return +{ + if (is_err($return)) + printf(" search_my_process_keyrings: %ld(%s)\n", $return, errno_str($return)); + else + printf(" search_my_process_keyrings: %p\n", $return); +} +probe module("nfs").function("nfs_idmap_get_desc").return +{ + printf(" nfs_idmap_get_desc: %d\n", $return); +} +*/ +probe begin { log("starting nfsidmap probe") } +probe end { log("ending nfsidmap probe") } + diff --git a/tapset/iserr.stp b/tapset/iserr.stp new file mode 100644 index 0000000..26207fd --- /dev/null +++ b/tapset/iserr.stp @@ -0,0 +1,11 @@ +%{ +#include <linux/types.h> +#include <linux/err.h> +%} + +function is_err:long(_ptr:long) +%{ + THIS->__retvalue = (long)IS_ERR((char *)THIS->_ptr); + + CATCH_DEREF_FAULT(); +%} diff --git a/tapset/key.stp b/tapset/key.stp new file mode 100644 index 0000000..7a40d7d --- /dev/null +++ b/tapset/key.stp @@ -0,0 +1,12 @@ +%{ +#include <linux/key-type.h> +%} + +function key_type:string(_ptr:long) +%{ + struct key_type *type = (struct key_type *)(long)kread(&(THIS->_ptr)); + + snprintf(THIS->__retvalue, MAXSTRINGLEN, "%s", type->name); + + CATCH_DEREF_FAULT(); +%} |