Ben Greear wrote: > David Miller wrote: > >> This change makes a lot of sense to me, I'll add it to net-next-2.6 >> so it can cook in there for a while just in case there are some >> unwanted side-effects. > > Thanks Dave. > > I think I found another problem as well: If I start 1 TCP and 1 UDP > connection > between each of the 500 interfaces on mac-vlans, the ARP tables will not > converge. > > It seems to be because mac-vlan has to copy broadcast packets to every > mac-vlan on a physical device, there are just too many packets: > > 500 vlans arping once per second means 500 pkts per second on the > other NIC. > Other NIC must copy these 500 times, > so, 250000 packets per second in each direction are > processed by the stack (they are not all on the wire, at least). > > A few get through and those UDP/TCP connections start consuming > bandwidth, which clogs up the 1G link enough that other responses > are lost most of the time. > > I'm going to try to work on some sort of random backoff for ARP that can > be enabled in this situation next. Ok, here is the patch that implements this. The idea is to spread out arp requests when you do something like start 500 TCP connections on 500 MAC-VLANs talking to 500 other MAC-VLANs. With a retrans timer of 1 sec, and a high volume of traffic, and a semi flaky network in between, my system will not resolve the ARPs and the retransmits overload my processors. Setting the retrans timer to 5 secs on my system also works, so I'm not sure if this patch is really required, but it might help keep arp requests somewhat random in cases where arp timers would otherwise try to all fire at the same time. This is against 2.6.25.20 plus my patches, but I believe it should apply to a clean 2.6.25.20 as well. Comments are welcome. Signed-Off-By Ben Greear Thanks, Ben -- Ben Greear Candela Technologies Inc http://www.candelatech.com