Thread (20 messages) flat view 20 messages, 4 authors, 2017-03-18

Re: [net-next PATCH 2/5] net: Call sk_mark_napi_id() in the ACK receive path

From: Alexander Duyck <hidden>
Date: 2017-03-16 22:36:59
Also in: lkml

On Thu, Mar 16, 2017 at 3:04 PM, Eric Dumazet [off-list ref] wrote:
On Thu, 2017-03-16 at 11:32 -0700, Alexander Duyck wrote:
quoted
From: Sridhar Samudrala <sridhar.samudrala@intel.com>

Call sk_mark_napi_id() in the ACK receive path of a TCP_NEW_SYN_RECV
socket, so that sk->napi_id is set even if the socket hasn't yet received
any data.  With this change we should be able to start busy polling
slightly earlier.

Signed-off-by: Sridhar Samudrala <sridhar.samudrala@intel.com>
Signed-off-by: Alexander Duyck <redacted>
---
 net/ipv4/tcp_ipv4.c |    1 +
 1 file changed, 1 insertion(+)
diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
index 08d870e45658..b86002a296f1 100644
--- a/net/ipv4/tcp_ipv4.c
+++ b/net/ipv4/tcp_ipv4.c
@@ -1687,6 +1687,7 @@ int tcp_v4_rcv(struct sk_buff *skb)
                      tcp_v4_send_reset(nsk, skb);
                      goto discard_and_relse;
              } else {
+                     sk_mark_napi_id(nsk, skb);
                      sock_put(sk);
                      return 0;
              }
Seems good, but what about IPv6 ?
Sorry, I spaced out and overlooked that this would also be an issue for IPv6.
Frankly this calls for the sk_mark_napi_id() being done in
tcp_child_process() instead of its four callers.
We can look into that for the next version.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help