forked from mirrors/linux
		
	tcp: Do not underestimate rwnd_limited
If available rwnd is too small, tcp_tso_should_defer()
can decide it is worth waiting before splitting a TSO packet.
This really means we are rwnd limited.
Fixes: 5615f88614 ("tcp: instrument how long TCP is limited by receive window")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Acked-by: Soheil Hassas Yeganeh <soheil@google.com>
Reviewed-by: Yuchung Cheng <ycheng@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
			
			
This commit is contained in:
		
							parent
							
								
									e37d05a538
								
							
						
					
					
						commit
						41727549de
					
				
					 1 changed files with 4 additions and 1 deletions
				
			
		| 
						 | 
					@ -2356,9 +2356,12 @@ static bool tcp_write_xmit(struct sock *sk, unsigned int mss_now, int nonagle,
 | 
				
			||||||
		} else {
 | 
							} else {
 | 
				
			||||||
			if (!push_one &&
 | 
								if (!push_one &&
 | 
				
			||||||
			    tcp_tso_should_defer(sk, skb, &is_cwnd_limited,
 | 
								    tcp_tso_should_defer(sk, skb, &is_cwnd_limited,
 | 
				
			||||||
						 max_segs))
 | 
											 max_segs)) {
 | 
				
			||||||
 | 
									if (!is_cwnd_limited)
 | 
				
			||||||
 | 
										is_rwnd_limited = true;
 | 
				
			||||||
				break;
 | 
									break;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		limit = mss_now;
 | 
							limit = mss_now;
 | 
				
			||||||
		if (tso_segs > 1 && !tcp_urg_mode(tp))
 | 
							if (tso_segs > 1 && !tcp_urg_mode(tp))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue