dbus & preempt-rt compatibility patch
thiago at kde.org
Fri Mar 21 08:52:23 PDT 2014
Em sex 21 mar 2014, às 16:31:38, VITIELLO Fabien escreveu:
> Concerning dbus messages ordering, documentation says dbus doesn't keep
> message ordering. Thus, if we have two methods invokated. It could be
> possible to receive first the reply message to the second request and then
> the first reply message.
The D-Bus daemon keeps the messages in the order it received.
That means an effect is always later than its cause. If a given signal is
emitted as a result of another signal, all receivers will receive both signals
in the same order: first the cause, then the effect.
However, that doesn't apply to synchronisation outside of D-Bus. If two
processes send signals on the bus, even if they ensure by out-of-band means
that one emits before the other, the D-Bus daemon may read the messages off the
sockets in a different order.
> I was looking for information over the internet to understand if Genivi
> optimization with AF_BUS or kdbus projects could ensure message ordering
> which is not a right behaviour concerning real time (as you said) even in
> soft real time (in PREEMPT-RT for example).
kdbus keeps the same ordering semantics that the current D-Bus daemon has. But
it might break the non-synchronised case even further.
> However, Greg Kroah-Hartman wrote "D-Bus is asynchronous, it queues (RAM)
> messages, keeps the messages in order, and the receiver dequeues the
> messages." in this url http://kroah.com/log/blog/2014/01/15/kdbus-details/.
> Do you think it is a mistake or he was talking about kdbus functionnal ?
No. He was talking about something different when he mentioned it's
asynchronous. He was probably referring to the fact that a caller does not
have to wait for a reply before proceeding to other tasks, including more
You can see the ordering that I mentioned before in his use of the word
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
Software Architect - Intel Open Source Technology Center
PGP/GPG: 0x6EF45358; fingerprint:
E067 918B B660 DBD1 105C 966C 33F5 F005 6EF4 5358
More information about the dbus