aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/sock.h
diff options
context:
space:
mode:
authorAmritha Nambiar <amritha.nambiar@intel.com>2018-06-29 21:27:02 -0700
committerDavid S. Miller <davem@davemloft.net>2018-07-02 09:06:24 +0900
commitfc9bab24e9c654f62f3d411fc0b041be9e487e9d (patch)
tree6e66d1c3da3fc5717350f22cac6d4d4c8b4959ba /include/net/sock.h
parentnet: Record receive queue number for a connection (diff)
downloadlinux-dev-fc9bab24e9c654f62f3d411fc0b041be9e487e9d.tar.xz
linux-dev-fc9bab24e9c654f62f3d411fc0b041be9e487e9d.zip
net: Enable Tx queue selection based on Rx queues
This patch adds support to pick Tx queue based on the Rx queue(s) map configuration set by the admin through the sysfs attribute for each Tx queue. If the user configuration for receive queue(s) map does not apply, then the Tx queue selection falls back to CPU(s) map based selection and finally to hashing. Signed-off-by: Amritha Nambiar <amritha.nambiar@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/sock.h')
-rw-r--r--include/net/sock.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/include/net/sock.h b/include/net/sock.h
index 2b097cc89727..2ed99bfa4595 100644
--- a/include/net/sock.h
+++ b/include/net/sock.h
@@ -1730,6 +1730,16 @@ static inline void sk_rx_queue_clear(struct sock *sk)
#endif
}
+#ifdef CONFIG_XPS
+static inline int sk_rx_queue_get(const struct sock *sk)
+{
+ if (sk && sk->sk_rx_queue_mapping != NO_QUEUE_MAPPING)
+ return sk->sk_rx_queue_mapping;
+
+ return -1;
+}
+#endif
+
static inline void sk_set_socket(struct sock *sk, struct socket *sock)
{
sk_tx_queue_clear(sk);