summaryrefslogtreecommitdiff
path: root/net/ipv6/tcp_ipv6.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2014-11-11 13:00:11 -0500
committerDavid S. Miller <davem@davemloft.net>2014-11-11 13:00:11 -0500
commitb00394c007269183d9f539fa87e65892ac2006e2 (patch)
treee3c81c868a7c14ca2bac7efd69b6b21e25c355d4 /net/ipv6/tcp_ipv6.c
parent2e1af7d74f4f7b4d4c1b0fbf5da3b5f92d9c332f (diff)
parent2c8c56e15df3d4c2af3d656e44feb18789f75837 (diff)
downloadlinux-b00394c007269183d9f539fa87e65892ac2006e2.tar.gz
linux-b00394c007269183d9f539fa87e65892ac2006e2.tar.xz
Merge branch 'so_incoming_cpu'
Eric Dumazet says: ==================== net: SO_INCOMING_CPU support SO_INCOMING_CPU socket option (read by getsockopt()) provides an alternative to RPS/RFS for high performance servers using multi queues NIC. TCP should use sk_mark_napi_id() for established sockets only. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6/tcp_ipv6.c')
-rw-r--r--net/ipv6/tcp_ipv6.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c
index ace29b60813c..1985b4933a6b 100644
--- a/net/ipv6/tcp_ipv6.c
+++ b/net/ipv6/tcp_ipv6.c
@@ -1293,6 +1293,7 @@ static int tcp_v6_do_rcv(struct sock *sk, struct sk_buff *skb)
struct dst_entry *dst = sk->sk_rx_dst;
sock_rps_save_rxhash(sk, skb);
+ sk_mark_napi_id(sk, skb);
if (dst) {
if (inet_sk(sk)->rx_dst_ifindex != skb->skb_iif ||
dst->ops->check(dst, np->rx_dst_cookie) == NULL) {
@@ -1322,6 +1323,7 @@ static int tcp_v6_do_rcv(struct sock *sk, struct sk_buff *skb)
*/
if (nsk != sk) {
sock_rps_save_rxhash(nsk, skb);
+ sk_mark_napi_id(sk, skb);
if (tcp_child_process(sk, nsk, skb))
goto reset;
if (opt_skb)
@@ -1454,7 +1456,7 @@ process:
if (sk_filter(sk, skb))
goto discard_and_relse;
- sk_mark_napi_id(sk, skb);
+ sk_incoming_cpu_update(sk);
skb->dev = NULL;
bh_lock_sock_nested(sk);