diff options
author | 2014-07-15 23:28:32 -0400 | |
---|---|---|
committer | 2014-07-16 23:29:52 -0700 | |
commit | 2dc41cff7545d55c6294525c811594576f8e119c (patch) | |
tree | cab09b28d188606139b1b50b661f42da157c52ba /tools/perf/scripts/python/syscall-counts.py | |
parent | udp: Simplify __udp*_lib_mcast_deliver. (diff) | |
download | linux-dev-2dc41cff7545d55c6294525c811594576f8e119c.tar.xz linux-dev-2dc41cff7545d55c6294525c811594576f8e119c.zip |
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 <drheld@google.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'tools/perf/scripts/python/syscall-counts.py')
0 files changed, 0 insertions, 0 deletions