SSSD User-Space Markers

SSSD includes support for SystemTap user-space markers and are enabled in current versions of Fedora and Red Hat Enterprise Linux 7.4. The markers allow SystemTap to probe various steps in SSSD operation. Below is an listing of the SSSD events available on Fedora 28:

$ stap -L 'dp_*,sssd*'
dp_req_done dp_req_name:string dp_req_target:long dp_req_method:long dp_ret:long dp_errorstr:string $arg1:long $arg2:long $arg3:long $arg4:long $arg5:long
dp_req_send dp_req_domain:string dp_req_name:string dp_req_target:long dp_req_method:long $arg1:long $arg2:long $arg3:long $arg4:long
sssd_transaction_cancel nesting:long probestr:string $arg1:long
sssd_transaction_commit_after nesting:long probestr:string $arg1:long
sssd_transaction_commit_before nesting:long probestr:string $arg1:long
sssd_transaction_start nesting:long probestr:string $arg1:long
$ stap -L 'process("/usr/lib*/sssd/libsss*.so").mark("*")'
process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_acct_req_recv") $arg1:long $arg2:long $arg3:long $arg4:long
process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_acct_req_send") $arg1:long $arg2:long $arg3:long $arg4:long
process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_deref_search_recv") $arg1:long $arg2:long
process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_deref_search_send") $arg1:long $arg2:long
process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_get_generic_ext_recv") $arg1:long $arg2:long $arg3:long
process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_get_generic_ext_send") $arg1:long $arg2:long $arg3:long
process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_check_cache_post")
process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_check_cache_pre")
process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_deref_process_post")
process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_deref_process_pre")
process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_deref_recv")
process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_deref_send")
process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_lookup_group_recv")
process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_lookup_group_send")
process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_lookup_unknown_recv")
process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_lookup_unknown_send")
process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_lookup_user_recv")
process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_lookup_user_send")
process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_populate_post")
process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_populate_pre")
process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_populate_search_users_post")
process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_populate_search_users_pre")
process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_process_recv") $arg1:long
process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_process_send") $arg1:long
process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_process_split_post")
process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_process_split_pre")
process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_recv")
process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_save_post")
process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_save_pre")
process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_send")
process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_sysdb_search_groups_post")
process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_sysdb_search_groups_pre")
process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_sysdb_search_users_post")
process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_nested_group_sysdb_search_users_pre")
process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_search_user_recv") $arg1:long
process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_search_user_save_begin") $arg1:long
process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_search_user_save_end") $arg1:long
process("/usr/lib64/sssd/libsss_ldap_common.so").mark("sdap_search_user_send") $arg1:long
process("/usr/lib64/sssd/libsss_util.so").mark("sysdb_transaction_cancel") $arg1:long
process("/usr/lib64/sssd/libsss_util.so").mark("sysdb_transaction_commit_after") $arg1:long
process("/usr/lib64/sssd/libsss_util.so").mark("sysdb_transaction_commit_before") $arg1:long
process("/usr/lib64/sssd/libsss_util.so").mark("sysdb_transaction_start") $arg1:long

Using SSSD User-Space Markers

To use the SSSD user-space markers on Fedora you will need:

Examples and Demonstrations of Markers

The sssd-common rpm includes the following systemtap scripts in /usr/share/sssd/systemtap/:

References

None: SSSDMarkers (last edited 2018-09-25 15:37:28 by WilliamCohen)