Recipe or pointers for implementing an alternate DBus transport?

Schmottlach, Glenn glenn.schmottlach at harman.com
Thu Dec 4 09:01:12 PST 2008


I am interested if anyone has put together (or can offer) a recipe or
pointers for implementing an alternate transport for DBus?

 

I have managed to port DBus to QNX and did some benchmarking on that
platform. Unfortunately, QNX does not offer abstract sockets or any
optimizations in the kernel to accelerate local (unix domain) sockets.
As a result, to communicate between a client and a service via the DBus
daemon requires several process hops and corresponding context switches.
This kills performance as the number of processes increases and the
network stack soaks up all available CPU cycles.

 

Fortunately, QNX offers a very efficient micro-kernel and message
passing system for inter-process communication. This framework does not
incur the overhead associated with the local socket implementation. What
I'd like to do is provide an alternative transport that utilizes this
(native) messaging passing framework. Unfortunately, I'm not real sure
where to start.

 

It appears that some consideration has already been given to abstracting
the underlying transport layer for DBus. Ideally, I *think* I'd like to
add another <listen> option to the system/session, like

 

<listen>qnx:path=/blah</listen>

 

With this configured, the QNX message passing transport needs to be
instantiated.

 

So, what files/interfaces really need to be tweaked and/or added? Can
anyone offer any suggestions or guidance? Please provide as much detail
as you can offer.

 

Thanks . . .

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freedesktop.org/archives/dbus/attachments/20081204/36522e8e/attachment.html 


More information about the dbus mailing list