remi at remlab.net
Sat May 8 07:42:08 PDT 2010
Le samedi 8 mai 2010 17:08:53 Lennart Poettering, vous avez écrit :
> On Sat, 08.05.10 17:06, Rémi Denis-Courmont (remi at remlab.net) wrote:
> > Le samedi 8 mai 2010 16:19:48 Lennart Poettering, vous avez écrit :
> > > My recommendation for this would be to do something that has recently
> > > been done in libudev to minimize wakeups in the monitoring clients
> > > there: pass along pre-calculated bloom filters with the packets and
> > > use BSD socket filters to test them and supress unmatched packets.
> > If I'm not mistaken, udev uses Netlink sockets with datagram semantics. I
> > wonder how BPF is supposed to work with stream socket semantics, that
> > DBus currently uses.
> Probably by going for SOCK_SEQPACKET then.
As far as I know, SOCK_SEQPACKET means any single DBus message must fit in the
kernel-space socket buffer. Currently that defaults to 128kb on Linux. Not
sure what limit distros configure the dbus-daemon with, but the protocol
allows for much much large packets.
I would agree that sending large packets over DBus is stupid anyway (yeah,
Telepathy, I mean you). Correct congestion control is not possible for multi-
point communication over a single stream. This can result in head-of-line
blocking. But that's a totally separate discussion to excessive wakeups.
More information about the dbus