mac80211: Change default tx_sk_pacing_shift to 7
authorToke Høiland-Jørgensen <toke@redhat.com>
Thu, 21 Feb 2019 17:29:36 +0000 (18:29 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 5 Mar 2019 16:58:45 +0000 (17:58 +0100)
commit 5c14a4d05f68415af9e41a4e667d1748d41d1baf upstream.

When we did the original tests for the optimal value of sk_pacing_shift, we
came up with 6 ms of buffering as the default. Sadly, 6 is not a power of
two, so when picking the shift value I erred on the size of less buffering
and picked 4 ms instead of 8. This was probably wrong; those 2 ms of extra
buffering makes a larger difference than I thought.

So, change the default pacing shift to 7, which corresponds to 8 ms of
buffering. The point of diminishing returns really kicks in after 8 ms, and
so having this as a default should cut down on the need for extensive
per-device testing and overrides needed in the drivers.

Cc: stable@vger.kernel.org
Signed-off-by: Toke Høiland-Jørgensen <toke@redhat.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/mac80211/tx.c

index c7ccd7b..743cde6 100644 (file)
@@ -3614,10 +3614,10 @@ void __ieee80211_subif_start_xmit(struct sk_buff *skb,
                /* We need a bit of data queued to build aggregates properly, so
                 * instruct the TCP stack to allow more than a single ms of data
                 * to be queued in the stack. The value is a bit-shift of 1
-                * second, so 8 is ~4ms of queued data. Only affects local TCP
+                * second, so 7 is ~8ms of queued data. Only affects local TCP
                 * sockets.
                 */
-               sk_pacing_shift_update(skb->sk, 8);
+               sk_pacing_shift_update(skb->sk, 7);
 
                fast_tx = rcu_dereference(sta->fast_tx);