All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eric Dumazet <eric.dumazet@gmail.com>
To: Felix Fietkau <nbd@nbd.name>, David Miller <davem@davemloft.net>
Cc: netdev <netdev@vger.kernel.org>,
	"Johannes Berg" <johannes.berg@intel.com>,
	"Toke Høiland-Jørgensen" <toke@toke.dk>,
	"Kir Kolyshkin" <kir@openvz.org>
Subject: [PATCH net-next] net: sk_pacing_shift_update() helper
Date: Tue, 12 Dec 2017 06:34:19 -0800	[thread overview]
Message-ID: <1513089259.25033.51.camel@gmail.com> (raw)
In-Reply-To: <1511890429.16595.20.camel@gmail.com>

From: Eric Dumazet <edumazet@google.com>

In commit 3a9b76fd0db9 ("tcp: allow drivers to tweak TSQ logic")
I gave a code sample to set sk->sk_pacing_shift that was not complete.

Better add a helper that can be used by drivers without worries,
and maybe amended in the future.

A wifi driver might use it from its ndo_start_xmit()

Following call would setup TCP to allow up to ~8ms of queued data per
flow.

sk_pacing_shift_update(skb->sk, 7);

Signed-off-by: Eric Dumazet <edumazet@google.com>
---
 include/net/sock.h |   11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/include/net/sock.h b/include/net/sock.h
index 9155da42269208b358df8535b14dfd3dba509365..9a9047268d375496bccc954d03ec20baf4177fd3 100644
--- a/include/net/sock.h
+++ b/include/net/sock.h
@@ -2407,4 +2407,15 @@ static inline int sk_get_rmem0(const struct sock *sk, const struct proto *proto)
 	return *proto->sysctl_rmem;
 }
 
+/* Default TCP Small queue budget is ~1 ms of data (1sec >> 10)
+ * Some wifi drivers need to tweak it to get more chunks.
+ * They can use this helper from their ndo_start_xmit()
+ */
+static inline void sk_pacing_shift_update(struct sock *sk, int val)
+{
+	if (!sk || !sk_fullsock(sk) || sk->sk_pacing_shift == val)
+		return;
+	sk->sk_pacing_shift = val;
+}
+
 #endif	/* _SOCK_H */

  reply	other threads:[~2017-12-12 14:34 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-10  2:41 [PATCH net-next] tcp: allow drivers to tweak TSQ logic Eric Dumazet
2017-11-11 14:27 ` [net-next] " Johannes Berg
2017-11-11 23:38   ` Eric Dumazet
2017-11-13  9:21     ` Johannes Berg
2017-11-12 14:35   ` Toke Høiland-Jørgensen
2017-11-11 23:54 ` [PATCH v2 net-next] " Eric Dumazet
2017-11-12 13:39   ` Neal Cardwell
2017-11-14  7:18   ` David Miller
2017-11-28 13:10   ` Felix Fietkau
2017-11-28 17:33     ` Eric Dumazet
2017-12-12 14:34       ` Eric Dumazet [this message]
2017-12-13 20:11         ` [PATCH net-next] net: sk_pacing_shift_update() helper David Miller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1513089259.25033.51.camel@gmail.com \
    --to=eric.dumazet@gmail.com \
    --cc=davem@davemloft.net \
    --cc=johannes.berg@intel.com \
    --cc=kir@openvz.org \
    --cc=nbd@nbd.name \
    --cc=netdev@vger.kernel.org \
    --cc=toke@toke.dk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.