Kernel D-Bus

kdbus is my current project. The goal is to try and avoid context-switch overheads incurred by the current D-Bus architecture, in which all messages are routed via the dbus-daemon, a process running in user-space.

The idea is to push the message routing into the kernel by use of a new address family, and avoid two context switches per message (one is, of course, unavoidable - the message does actually need to arrive at its destination!). This should offer a significant speedup.

Methodology

My plan is to take a clone of AF_UNIX and strip out what's not required, and to then re-seat libdbus ontop of that. This is now done (using a new transport), and works well - I can run a gnome session on it happily.

Next, I plan to push some minimal routing ability into the kernel so that dbus-daemon is partially taken out of the loop. Ultimately, AF_DBUS will move to a bus topology and handle all message routing, with dbus-daemon relegated to only handling requests to join/leave the bus and set up some kind of access control/routing tables.

 
home/projects/collabora/kdbus.txt · Last modified: 2010/01/08 18:22 by sumanah
 
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki