Re: [PATCH 0/10] af_unix: add multicast and filtering features to AF_UNIX
From: Rodrigo Moya <hidden>
Date: 2012-02-28 10:47:39
Also in:
lkml
Hi David On Mon, 2012-02-27 at 14:05 -0500, David Miller wrote:
From: Javier Martinez Canillas <redacted> Date: Mon, 27 Feb 2012 15:00:06 +0100quoted
Primary for performance reasons. D-bus is an IPC system for processes in the same machine so traversing the whole TCP/IP stack seems a little overkill to me.You haven't actually tested what the cost of this actually is, so what you're saying is mere speculation. In many cases TCP/UDP over loopback is actually faster than AF_UNIX.
you're right we haven't tested this, but because of the other points in Javier's mail, which are the special semantics we need for this to fit the D-Bus usage:
- total order is guaranteed: If sender A sends a message before B,
then
receiver C and D should both get message A first and then B. - slow readers: dropping packets vs blocking the sender. Although datagrams are not reliable on IP, datagrams on Unix sockets are
never
lost. So if one receiver has its buffer full the sender is blocked instead of dropping packets. That way we guarantee a reliable communication channel. - multicast group acess control: controlling who can join the
multicast
group. - multicast on loopback is not supported: which means we have to use a NIC (i.e: eth0).
Because of all of this, UDP/IP multicast wasn't even considered as an option. We might be wrong in some/all of those, so could you please comment on them to check if that's so? thanks