dbus moving into kernel?
Joshua Judson Rosen
rozzin at geekspace.com
Sat Sep 25 18:30:54 CEST 2010
Marco Trevisan "(Treviño)" <mail at 3v1n0.net> writes:
> Il giorno gio, 16/09/2010 alle 17.23 +0100, Al Johnson ha scritto:
> > kdbus is proof-of-concept at the moment, the idea being to reduce the number
> > of context switches needed for each dbus message. One synthetic benchmark
> > shows a 3x speed increase on the n900 but speedup in real world applications
> > seems much more modest.
> > http://alban.apinc.org/blog/2010/09/15/d-bus-in-the-kernel-faster/
> Some days ago I've tried to port this patch to the Openmoko kernel,
> after applying it to the SHR 2.6.32 kernel (patches at ), I got
> these results (in average):
> dbus-ping-pong test:
> Ping dbus-daemon (s) kdbus (s) speedup
> 500 ping 3.33 2.13 36.2%
> 5000 ping 32.59 26.09 19.9%
> 50000 ping 313.56 176.35 43.8%
> Adrien Bustany’s ipc-performances tool with 60000 random 10 char
> dbus-daemon query (s) kdbus query (s) speedup
> 102.75 74.71 27.29%
> So, the results are quite good, but the code is actually buggy...
> I guess that this system could give us a nice speedup when with many
> core applications with very few sources changes.
Looking at your numbers, we're talking about shaving `up to 43.8%' off
of something that's already down in the singe-digit milliseconds range
to start with: in the best case above, it goes from 6.3 ms per query
to 3.5 ms per query; in the worse cases, it goes from 6.5 ms down to
5.2 ms. In your last test with Adrien's tool, the 27.29% improvement
is from 1.7 ms to 1.2 ms.
Is D-Bus actually enough of a bottleneck in, say, the FSO or SHR designs
that we should expect to accumulate enough of these ~2-ms reductions
quickly enough for them to actually become noticeable? An improvement of
`2 ms per' can be worthwhile if it adds up quickly enough--but does it?
How long does it take, under normal operating conditions, before even
50 D-Bus calls are made (a total of 0.1 seconds of accumulated savings)?
I don't know the answers to these questions, so they're not rhetorical :)
"Don't be afraid to ask (λf.((λx.xx) (λr.f(rr))))."
More information about the community