dbus & preempt-rt compatibility patch

Thiago Macieira thiago at kde.org
Fri Mar 21 08:52:23 PDT 2014


Em sex 21 mar 2014, às 16:31:38, VITIELLO Fabien escreveu:
> Hi,
> 
> 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 
calls.

You can see the ordering that I mentioned before in his use of the word 
"queue".

-- 
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 mailing list