]> git.baikalelectronics.ru Git - kernel.git/commit
Merge branch 'tcp-lockless-listener'
authorDavid S. Miller <davem@davemloft.net>
Sat, 3 Oct 2015 11:32:52 +0000 (04:32 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sat, 3 Oct 2015 11:32:52 +0000 (04:32 -0700)
commit48c3db6d5222920ad1ead735d9d2136dd47fbda1
tree0caf05649d27830ba0f9548704abbb1ec4b5bb91
parent923b269728c3c2275acc7a61de0ec99cb9f2a380
parent6c67d9803aedf986dbf847ef6a313169bb3b4f59
Merge branch 'tcp-lockless-listener'

Eric Dumazet says:

====================
tcp/dccp: lockless listener

TCP listener refactoring : this is becoming interesting !

This patch series takes the steps to use normal TCP/DCCP ehash
table to store SYN_RECV requests, instead of the private per-listener
hash table we had until now.

SYNACK skb are now attached to their syn_recv request socket,
so that we no longer heavily modify listener sk_wmem_alloc.

listener lock is no longer held in fast path, including
SYNCOOKIE mode.

During my tests, my server was able to process 3,500,000
SYN packets per second on one listener and still had available
cpu cycles.

That is about 2 to 3 order of magnitude what we had with older kernels.

This effort started two years ago and I am pleased to reach expectations.

We'll probably extend SO_REUSEPORT to add proper cpu/numa affinities,
so that heavy duty TCP servers can get proper siloing thanks to multi-queues
NIC.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>