diff options
| author | David S. Miller <davem@davemloft.net> | 2015-10-05 02:46:26 -0700 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2015-10-05 02:46:26 -0700 |
| commit | 2472186f58ee1e4b9ca194245fef03931f6de90a (patch) | |
| tree | 75c793a05dd64db3df05f804e429bae45ead20d1 /net/core/dev.c | |
| parent | 3e087caa23ef36370bfb925d3bbca78e8302d3ce (diff) | |
| parent | a1a5344ddbe8fd3e080013b317ac9a664490cfdf (diff) | |
Merge branch 'tcp-listener-fixes-and-improvement'
Eric Dumazet says:
====================
tcp: lockless listener fixes and improvement
This fixes issues with TCP FastOpen vs lockless listeners,
and SYNACK being attached to request sockets.
Then, last patch brings performance improvement for
syncookies generation and validation.
Tested under a 4.3 Mpps SYNFLOOD attack, new perf profile looks
like :
12.11% [kernel] [k] sha_transform
5.83% [kernel] [k] tcp_conn_request
4.59% [kernel] [k] __inet_lookup_listener
4.11% [kernel] [k] ipt_do_table
3.91% [kernel] [k] tcp_make_synack
3.05% [kernel] [k] fib_table_lookup
2.74% [kernel] [k] sock_wfree
2.66% [kernel] [k] memcpy_erms
2.12% [kernel] [k] tcp_v4_rcv
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core/dev.c')
| -rw-r--r-- | net/core/dev.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/net/core/dev.c b/net/core/dev.c index 323c04edd779..a229bf0d649d 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -2974,6 +2974,7 @@ static u16 __netdev_pick_tx(struct net_device *dev, struct sk_buff *skb) new_index = skb_tx_hash(dev, skb); if (queue_index != new_index && sk && + sk_fullsock(sk) && rcu_access_pointer(sk->sk_dst_cache)) sk_tx_queue_set(sk, new_index); |
