[CRIU] [PATCH] tcp: set timestamps for restored skb-s

Pavel Emelyanov xemul at parallels.com
Tue Aug 6 06:58:32 EDT 2013


On 08/06/2013 02:52 PM, Andrey Vagin wrote:
> When the repair mode is turned off, the write queue seqs are
> updated so that the whole queue is considered to be 'already sent.
> 
> The "when" field must be set for such skb. It's used in tcp_rearm_rto
> for example. If the "when" field isn't set, the retransmit timeout can
> be calculated incorrectly and a tcp connected can stop for two minutes
> (TCP_RTO_MAX).
> 
> Signed-off-by: Andrey Vagin <avagin at openvz.org>

Acked-by: Pavel Emelyanov <xemul at parallels.com>

> ---
>  net/ipv4/tcp.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c
> index 5423223..b2f6c74 100644
> --- a/net/ipv4/tcp.c
> +++ b/net/ipv4/tcp.c
> @@ -1121,6 +1121,13 @@ new_segment:
>  					goto wait_for_memory;
>  
>  				/*
> +				 * All packets are restored as if they have
> +				 * already been sent.
> +				 */
> +				if (tp->repair)
> +					TCP_SKB_CB(skb)->when = tcp_time_stamp;
> +
> +				/*
>  				 * Check whether we can use HW checksum.
>  				 */
>  				if (sk->sk_route_caps & NETIF_F_ALL_CSUM)
> 




More information about the CRIU mailing list