tcp: md5: remove spinlock usage in fast path
authorEric Dumazet <edumazet@google.com>
Mon, 20 May 2013 06:52:26 +0000 (06:52 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 20 May 2013 21:00:42 +0000 (14:00 -0700)
commit71cea17ed39fdf1c0634f530ddc6a2c2fc601c2b
treeec6ec3929a41948fb7fef76cceaebf2f1681f1d8
parent168fc21a971e4bc821a7838ccc39b7bdaf316c11
tcp: md5: remove spinlock usage in fast path

TCP md5 code uses per cpu variables but protects access to them with
a shared spinlock, which is a contention point.

[ tcp_md5sig_pool_lock is locked twice per incoming packet ]

Makes things much simpler, by allocating crypto structures once, first
time a socket needs md5 keys, and not deallocating them as they are
really small.

Next step would be to allow crypto allocations being done in a NUMA
aware way.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/tcp.h
net/ipv4/tcp.c
net/ipv4/tcp_ipv4.c
net/ipv4/tcp_minisocks.c