From: David Held Date: Wed, 16 Jul 2014 03:28:32 +0000 (-0400) Subject: udp: Use hash2 for long hash1 chains in __udp*_lib_mcast_deliver. X-Git-Tag: omap-for-v3.17/fixes-against-rc2~149^2~144^2 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2dc41cff7545d55c6294525c811594576f8e119c;p=pandora-kernel.git udp: Use hash2 for long hash1 chains in __udp*_lib_mcast_deliver. Many multicast sources can have the same port which can result in a very large list when hashing by port only. Hash by address and port instead if this is the case. This makes multicast more similar to unicast. On a 24-core machine receiving from 500 multicast sockets on the same port, before this patch 80% of system CPU was used up by spin locking and only ~25% of packets were successfully delivered. With this patch, all packets are delivered and kernel overhead is ~8% system CPU on spinlocks. Signed-off-by: David Held Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller --- Reading git-diff-tree failed