diff options
author | David S. Miller <davem@davemloft.net> | 2014-11-11 13:00:11 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-11-11 13:00:11 -0500 |
commit | b00394c007269183d9f539fa87e65892ac2006e2 (patch) | |
tree | e3c81c868a7c14ca2bac7efd69b6b21e25c355d4 /net/core/sock.c | |
parent | 2e1af7d74f4f7b4d4c1b0fbf5da3b5f92d9c332f (diff) | |
parent | 2c8c56e15df3d4c2af3d656e44feb18789f75837 (diff) | |
download | linux-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.c | 5 |
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) |