Re: [GIT PULL] kdbus for 4.1-rc1

Lukasz Skalski
2015-04-24T13:50:45Z

Hi All,

On 04/23/2015 07:16 PM, Greg Kroah-Hartman wrote:
> On Thu, Apr 23, 2015 at 09:46:22AM -0700, Andy Lutomirski wrote:
>> - There's still an open performance question. Namely: is kdbus performant?
>
> Yes, I thought that was already answered. Tizen posted some numbers
> with a much older version of the code, before David fixed a bunch of
> issues that he and you found, and that averaged between 25-50% faster.
> Details are in this presentation:
> http://download.tizen.org/misc/media/conference2014/slides/tdc2014-kdbus-in-tizen3.pdf
>
> The Tizen and GENIVI developers are off running numbers with the latest
> code, or so they told me through emails, but I don't know when/if that
> will ever happen, so I can't promise more than what is already here.
>

I'm working on kdbus support for GLib ([1],[2]). I saw some questions
about kdbus performance, so I've prepared simple benchmark. Because
David already has posted some comparison results between kdbus and UDS,
I've decided to use my GLib port with native kdbus support (it should
be noted, that this port is not finished yet and there are still some
places for improvements, thus please do not treat these test results as
final).

To perform tests I've created two simple apps:

- server: http://fpaste.org/215157/
- client: http://fpaste.org/215156/

The first one (server) registers itself on the bus under well-known
name ("com.test.app") and waits for calls to its objects and methods.
The second one (client) makes calls and records periods of time between
moment of preparing of a call to the moment of receiving an answer. The
measurement is made by performing 20000 of calls and computing a sum of
duration of every call (for two different sizes of message payload:
1000 and 10000 bytes). The client program returns total time of
performed calls after successful execution. All tests have been run on
VirtualBox with ArchLinux and latest version of systemd and kdbus.

The test results are following:

+--------------+--------------------+--------------------+
| | Elapsed time | Elapsed time |
| Message size | GLIB WITH NATIVE | GLIB + DBUS-DAEMON |
| [bytes] | KDBUS SUPPORT* | |
+--------------+--------------------+--------------------+
| | 1) 2.874264 s | 1) 4.624631 s |
| 1000 | 2) 2.932835 s | 2) 4.669730 s |
| | 3) 2.899634 s | 3) 4.747275 s |
| | 4) 2.970106 s | 4) 4.725723 s |
+--------------+--------------------+--------------------+
| | 3) 3.182379 s | 3) 5.469663 s |
| 10000 | 3) 3.334170 s | 3) 5.520757 s |
| | 3) 3.353305 s | 3) 5.556374 s |
| | 3) 3.367732 s | 3) 5.597758 s |
+--------------+--------------------+--------------------+

*all tests performed without using memfd mechanism.

I hope it will be useful for someone :)

[1] https://github.com/lukasz-skalski/glib
[2] https://bugzilla.gnome.org/show_bug.cgi?id=721861

Cheers,--
Lukasz Skalski
Samsung R&D Institute Poland
Samsung Electronics
l.skalski@samsung.com