Message ID | 1513089259.25033.51.camel@gmail.com |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
Series | [net-next] net: sk_pacing_shift_update() helper | expand |
From: Eric Dumazet <eric.dumazet@gmail.com> Date: Tue, 12 Dec 2017 06:34:19 -0800 > 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> Applied, thanks Eric.
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 */