Subject: Re: [PATCH 2/2] macvlan: Move broadcasts into a work queue

From: Ben Greear <[email-masked]>
Date: Tue, 08 Apr 2014 09:48:40 -0700

On 04/07/2014 07:23 AM, Herbert Xu wrote:
> On Mon, Apr 07, 2014 at 07:07:42AM -0700, Eric Dumazet wrote:
>>
>> I suppose its a net-next material ?
> 
> Oh yes absolutely.
> 
>> Memory allocations (one incoming message -> ~4096 duplications) probably
>> should use GFP_KERNEL. This might need a change from rcu to simple mutex
>> for macvlan_broadcast() scan of all macvlans.
> 
> Good point.  However, as this change will be non-trivial we can
> do this as a follow-up.
> 
>> cond_resched() could help macvlan_process_broadcast() to not hog cpu.
>>
>> Anyway, 4.000 incoming messages are duplicated into 16.000.000 messages,
>> it takes half a minute to process on a single cpu. You might need
>> multiple workqueue to split the load on all online cpus ;)
> 
> You're welcome to add further improvements :)

At least for ARPs, maybe we could inspect the packet and only
deliver to interfaces configured with the MAC that is being
ARPed for (or ones that are in promisc)?

This would need to be a configurable optimization probably,
since perhaps someone depends on the current behaviour....

Thanks,
Ben

> Thanks,

-- 
Ben Greear <[email-masked]>
Candela Technologies Inc  http://www.candelatech.com