From: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
To: Eric Dumazet <eric.dumazet@gmail.com>
Cc: Rodrigo Moya <rodrigo.moya@collabora.co.uk>,
David Laight <David.Laight@ACULAB.COM>,
David Miller <davem@davemloft.net>,
javier@collabora.co.uk, lennart@poettering.net,
kay.sievers@vrfy.org, alban.crequy@collabora.co.uk,
bart.cerneels@collabora.co.uk, sjoerd.simons@collabora.co.uk,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 0/10] af_unix: add multicast and filtering features to AF_UNIX
Date: Thu, 01 Mar 2012 14:56:11 +0100 [thread overview]
Message-ID: <4F4F7FFB.6010608@collabora.co.uk> (raw)
In-Reply-To: <1330606775.2465.56.camel@edumazet-laptop>
On 03/01/2012 01:59 PM, Eric Dumazet wrote:
> Le jeudi 01 mars 2012 à 13:50 +0100, Rodrigo Moya a écrit :
>> the main problem in D-Bus we are trying to solve is the context
>> switches, since right now, there is a daemon, which listens on a UNIX
>> socket, and all traffic in the bus goes through it, and then the daemon
>> has to route the messages it gets on that socket to the corresponding
>> place(s). So, every time someone sends a message to D-Bus, since all
>> traffic goes through the daemon, dbus-daemon gets waked-up, which is one
>> of the biggest bottlenecks we are trying to fix.
>>
>> That's why we are thinking about using multicast with socket filters, so
>> that the daemon only gets traffic it cares about and thus is not waked
>> up and context switches don't happen when not needed.
>>
>> Using message queues, AFAICS, we would have the same problem, as the
>> daemon would create the message queue and would get all traffic, right?
>>
>
> This is why I mentioned extensions.
>
> Anyway, if you think multicast sockets is the way to go, then you could
> setup a virtual network just to be able to use AF_INET multicast.
>
> Thats probably doable without kernel patching.
>
We could use AF_INET multicast on a local machine but we need some
ordering and control flow requirements that are not guaranteed on UDP
multicast over IP. That's why we thought to add a new address family
AF_MCAST.
To make it a general local multicast solution and not being too specific
we added some flags to control its behavior like
MCAST_MREQ_DROP_WHEN_FULL to decide to either block the sender or drop
the packet when one receiver has its queue full.
Regards,
Javier
next prev parent reply other threads:[~2012-03-01 13:55 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-02-20 15:57 [PATCH 0/10] af_unix: add multicast and filtering features to AF_UNIX Javier Martinez Canillas
2012-02-20 15:57 ` [PATCH 01/10] af_unix: Documentation on multicast unix sockets Javier Martinez Canillas
2012-02-20 15:57 ` [PATCH 02/10] af_unix: Add constant for unix socket options level Javier Martinez Canillas
2012-02-20 15:57 ` [PATCH 03/10] af_unix: add setsockopt on unix sockets Javier Martinez Canillas
2012-02-20 16:20 ` David Miller
2012-02-20 19:13 ` [PATCH 0/10] af_unix: add multicast and filtering features to AF_UNIX Colin Walters
2012-02-21 8:07 ` Rodrigo Moya
2012-02-24 20:36 ` David Miller
2012-02-27 14:00 ` Javier Martinez Canillas
2012-02-27 19:05 ` David Miller
2012-02-28 10:47 ` Rodrigo Moya
2012-02-28 14:28 ` David Lamparter
2012-02-28 15:24 ` Javier Martinez Canillas
2012-02-28 16:33 ` Javier Martinez Canillas
2012-02-28 19:05 ` David Miller
2012-03-01 11:57 ` Javier Martinez Canillas
2012-03-01 12:26 ` Eric Dumazet
2012-03-01 12:33 ` David Laight
2012-03-01 12:50 ` Rodrigo Moya
2012-03-01 12:59 ` Eric Dumazet
2012-03-01 13:56 ` Javier Martinez Canillas [this message]
2012-03-01 16:00 ` Eric Dumazet
2012-03-01 16:02 ` Luiz Augusto von Dentz
2012-03-01 17:06 ` Javier Martinez Canillas
2012-03-01 17:59 ` Eric Dumazet
2012-03-01 18:10 ` Alan Cox
2012-03-01 19:02 ` Javier Martinez Canillas
2012-03-01 19:29 ` Javier Martinez Canillas
2012-03-01 18:53 ` David Dillow
2012-03-01 20:55 ` David Miller
2012-03-02 4:40 ` Stephen Hemminger
2012-03-01 20:44 ` David Miller
2012-03-01 22:01 ` Luiz Augusto von Dentz
2012-03-01 22:08 ` David Miller
2012-03-02 8:39 ` Luiz Augusto von Dentz
2012-03-02 8:55 ` David Miller
2012-03-02 9:27 ` Javier Martinez Canillas
2012-03-02 9:39 ` David Miller
2012-03-02 13:13 ` Eric Dumazet
2012-03-02 16:34 ` Javier Martinez Canillas
2012-03-02 17:08 ` Alan Cox
2012-03-05 8:38 ` Luiz Augusto von Dentz
2012-03-05 14:05 ` Martin Mares
2012-03-05 15:11 ` Javier Martinez Canillas
2012-03-05 15:49 ` Martin Mares
2012-03-05 18:55 ` David Lamparter
2012-03-02 10:08 ` Luiz Augusto von Dentz
2012-03-03 12:20 ` Martin Mares
2012-03-02 22:19 ` david
2012-03-01 12:57 ` Luiz Augusto von Dentz
2012-03-01 20:42 ` David Miller
-- strict thread matches above, loose matches on Subject: below --
2012-03-01 14:25 Erik Hugne
2012-03-01 14:25 ` Erik Hugne
2012-03-01 17:18 ` Rodrigo Moya
2012-03-02 7:01 ` Ying Xue
[not found] ` <4F506ABC.8050807@windriver.com>
2012-03-05 15:49 ` Erik Hugne
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4F4F7FFB.6010608@collabora.co.uk \
--to=javier.martinez@collabora.co.uk \
--cc=David.Laight@ACULAB.COM \
--cc=alban.crequy@collabora.co.uk \
--cc=bart.cerneels@collabora.co.uk \
--cc=davem@davemloft.net \
--cc=eric.dumazet@gmail.com \
--cc=javier@collabora.co.uk \
--cc=kay.sievers@vrfy.org \
--cc=lennart@poettering.net \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=rodrigo.moya@collabora.co.uk \
--cc=sjoerd.simons@collabora.co.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.