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:
- RPMs:
- sssd-common
- systemtap-client
- Membership to the stapdev group (or root access)
Examples and Demonstrations of Markers
The sssd-common rpm includes the following systemtap scripts in /usr/share/sssd/systemtap/:
References
- man sssd-systemtap