aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4/tcp_output.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/ipv4/tcp_output.c')
-rw-r--r--net/ipv4/tcp_output.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
index cd16eb06bebf..e21be13f74a6 100644
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -1866,8 +1866,12 @@ static bool tcp_write_xmit(struct sock *sk, unsigned int mss_now, int nonagle,
1866 * - better RTT estimation and ACK scheduling 1866 * - better RTT estimation and ACK scheduling
1867 * - faster recovery 1867 * - faster recovery
1868 * - high rates 1868 * - high rates
1869 * Alas, some drivers / subsystems require a fair amount
1870 * of queued bytes to ensure line rate.
1871 * One example is wifi aggregation (802.11 AMPDU)
1869 */ 1872 */
1870 limit = max(skb->truesize, sk->sk_pacing_rate >> 10); 1873 limit = max_t(unsigned int, sysctl_tcp_limit_output_bytes,
1874 sk->sk_pacing_rate >> 10);
1871 1875
1872 if (atomic_read(&sk->sk_wmem_alloc) > limit) { 1876 if (atomic_read(&sk->sk_wmem_alloc) > limit) {
1873 set_bit(TSQ_THROTTLED, &tp->tsq_flags); 1877 set_bit(TSQ_THROTTLED, &tp->tsq_flags);