Luke Kenneth Casson Leighton lkcl@lkcl.net writes:
On Tue, Jul 4, 2017 at 10:42 AM, Elena ``of Valhalla''
...
the heavy usage of d-bus for the openmoko OS basically was part of what killed the project. it would not surprise me at all to find that d-bus is similarly slowing systemd down when compared to other init systems.
The way that d-bus was used in OpenMoko was astonishing, and is really not something one can use to criticise d-bus in general. Not that I'm trying to say that d-bus is particulalry lovely, but what you're doing here is like saying that micrometer screw guages are rubbish becuase you once saw someone using one as a hammer, and they hurt their thumb.
The program that ran most of OpenMoko was written on the assumption that it would be very soon replaced by separate components that would all pass messages around via d-bus (a stupid design, given the hardware), then time ran out and that prototype was what shipped.
The result being that if one got an incoming call, it would provoke a cascade of (IIRC 7) d-bus interactions that were all being answered by call-backs in the single program that was doing everything. Each one went via a kernel context switch (or two?), dumping the cache, and that meant that it would take at least 5 seconds for the ringer to start ringing after a call came in, a few more seconds to show you the screen with the answer button, a second or two for your mad tapping to be noticed, during which the accelerometer would realise that it needed to swap portrait for landscape (repainting the "cancel" button where the "answer" used to be) and then finally it would process your demented attempts to answer the sodding thing as a call rejection. Marvelous.
Enrico Zini worked all that out, and then knocked up a very short script that waited for calls, made the ringer ring, and looked out for a button press on the physical button -- that allowed it to behave quite like a phone with no fuss.
If anyone wants an OpenMoko, I have one going cheap :-/
Cheers, Phil.