Single D-Bus server in SSSD

SSSD is a system daemon written in C language that provides identity, authorization and authentication services for users stored in remote databases. It consists of multiple processes that communicate with each other via D-Bus protocol.

Each process runs its own D-Bus server, so called message bus, at this moment. We would like to switch to a schema when only one message bus is running and routes messages to other processes that would connect to it as clients. However, before implementing this change in upstream, we need to be sure that there will be no performance impact on SSSD from additional context switches in heavy load environments.

Thesis goals:

Get familiar with SSSD and its internal D-Bus implementation called SBUS.
Get familiar with LDAP.
Get familiar with C profiling tool of your choice (gprof, perf, systemtap, …).
Change the code so it runs and uses only one D-Bus message
In the main SSSD process (called the monitor) using already available custom message bus implementation,
or by spawning private instance of dbus-broker.
Measure the performance impact of this change.
If the impact is not negligible, propose and implement an optimization if there is any.
Identify bottlenecks in SSSD and propose and possibly implement (depends on the scale) a solution to remove them.

Technical leads:

Pavel Březina <>


Project Resources