D-Bus is a system for low-latency, low-overhead, easy to use interprocess communication (IPC).

Since today, I replaced old style dbus-daemon with kdbus (in-kernel dbus implementation) and systemd Legacy D-Bus Protocol Compatibility Daemon.

It consists of two parts:

  • kdbus – very basic dbus abilities, running in kernel
  • systemd dbus compatibility layer is based on kdbus, running from user space

Main Differences:

  • Improved performance (even for emulated DBus)
  • Slightly better boot time
  • kdbus is better suited for embedded devices (such as automotive)
  • Bigger frameworks will be soon migrated directly to kdbus

Do you want try it?

How to enable it?

Warning: it may change your network interface names, if you switching from systemd-208-r2!

USE="kdbus" emerge -av1 systemd::gentoo
UPDATE: Changes was merged from ixit overlay into official gentoo

Second thing – you need compiled KDBUS as module or directly as part of kernel.
Beware, you should use at least kernel 3.12 series or later.

How to be sure that kdbus works?
Module or kernel part:
# journalctl -b | grep kdbus
Dec 28 22:55:57 machine kernel: kdbus: initialized

Systemd userspace:
# journalctl -b | grep D-Bus
Dec 28 22:55:57 machine systemd[1]: Starting Legacy D-Bus Protocol Compatibility Socket.
Dec 28 22:55:57 machine systemd[1]: Listening on Legacy D-Bus Protocol Compatibility Socket.

wikipedia D-Bus
Greg Google+

Leave a Reply