summaryrefslogtreecommitdiff
path: root/net/core/sock.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/core/sock.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/core/sock.c')
-rw-r--r--net/core/sock.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/net/core/sock.c b/net/core/sock.c
index ac56dd06c306..0725cf0cb685 100644
--- a/net/core/sock.c
+++ b/net/core/sock.c
@@ -1213,6 +1213,10 @@ int sock_getsockopt(struct socket *sock, int level, int optname,
v.val = sk->sk_max_pacing_rate;
break;
+ case SO_INCOMING_CPU:
+ v.val = sk->sk_incoming_cpu;
+ break;
+
default:
return -ENOPROTOOPT;
}
@@ -1517,6 +1521,7 @@ struct sock *sk_clone_lock(const struct sock *sk, const gfp_t priority)
newsk->sk_err = 0;
newsk->sk_priority = 0;
+ newsk->sk_incoming_cpu = raw_smp_processor_id();
/*
* Before updating sk_refcnt, we must commit prior changes to memory
* (Documentation/RCU/rculist_nulls.txt for details)