Subject: Re: [PATCH] Multicast socket option

From: Nivedita Singhvi <[email-masked]>
Date: Fri, 29 May 2009 07:21:21 -0700

Rémi Denis-Courmont wrote:

>> In this case, default behaviour is _unchanged_ from the current
>> Linux standard. The socket option is set by default to provide
>> original behaviour. Sockets wishing to receive data only from
>> multicast groups they join explicitly will need to clear this
>> socket option.
> 
> You can already achieve this by checking the destination address in the 
> SOL_PKTINFO ancilliary data. Sure, it will cause extra context switches to 
> process unwanted packets but it will work with any kernel version.
> 

True, and depending on your environment and workload, this
is a non-event or a big deal. For low latency, real time
and other performance-sensitive applications, this can be
an issue. Think lots (hundreds of threads, perhaps) listening
on different channels(groups). They will likely all get
woken, scheduled, possibly preempt running lower-priority
tasks to process this delivery that they don't need. Seen
across the system, the delivery by the kernel of packets
to user space processes which don't want them can be very
significant overhead (context switches, scheduling out/in,...).

thanks,
Nivedita