[UDP]: UDP can use sk_hash to speedup lookups
authorEric Dumazet <dada1@cosmosbay.com>
Fri, 9 Feb 2007 23:44:52 +0000 (15:44 -0800)
committerDavid S. Miller <davem@sunset.davemloft.net>
Sun, 11 Feb 2007 07:20:29 +0000 (23:20 -0800)
commit95f30b336b944e3e418f825044b4793d9e9aac09
tree4faf8cc7a061fdf7d85f94768ca1150f8580e700
parent4768fbcbcfbbcacb785ae08eef33767a0b4fdcdd
[UDP]: UDP can use sk_hash to speedup lookups

In a prior patch, I introduced a sk_hash field (__sk_common.skc_hash)  to let
tcp lookups use one cache line per unmatched entry instead of two.

We can also use sk_hash to speedup UDP part as well. We store in sk_hash the
hnum value, and use sk->sk_hash (same cache line than 'next' pointer),
instead of inet->num (different cache line)

Note : We still have a false sharing problem for SMP machines, because
sock_hold(sock) dirties the cache line containing the 'next' pointer. Not
counting the udp_hash_lock rwlock. (did someone mentioned RCU ? :) )

Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/udp.c
net/ipv6/udp.c