mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-28 17:41:50 +00:00
tcp/dccp: install syn_recv requests into ehash table
In this patch, we insert request sockets into TCP/DCCP regular ehash table (where ESTABLISHED and TIMEWAIT sockets are) instead of using the per listener hash table. ACK packets find SYN_RECV pseudo sockets without having to find and lock the listener. In nominal conditions, this halves pressure on listener lock. Note that this will allow for SO_REUSEPORT refinements, so that we can select a listener using cpu/numa affinities instead of the prior 'consistent hash', since only SYN packets will apply this selection logic. We will shrink listen_sock in the following patch to ease code review. Signed-off-by: Eric Dumazet <edumazet@google.com> Cc: Ying Cai <ycai@google.com> Cc: Willem de Bruijn <willemb@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
2feda34192
commit
079096f103
15 changed files with 163 additions and 504 deletions
|
@ -205,6 +205,7 @@ void inet_put_port(struct sock *sk);
|
|||
|
||||
void inet_hashinfo_init(struct inet_hashinfo *h);
|
||||
|
||||
int inet_ehash_insert(struct sock *sk, struct sock *osk);
|
||||
void __inet_hash_nolisten(struct sock *sk, struct sock *osk);
|
||||
void __inet_hash(struct sock *sk, struct sock *osk);
|
||||
void inet_hash(struct sock *sk);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue