[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-id: <4A9781C8.5030605@tvk.rwth-aachen.de>
Date: Fri, 28 Aug 2009 09:05:44 +0200
From: Damian Lukowski <damian@....rwth-aachen.de>
To: Li_Xin2@....com
Cc: eric.dumazet@...il.com, andi@...stfloor.org, netdev@...r.kernel.org
Subject: Re: TCP keepalive timer problem
Li_Xin2@....com schrieb:
> > Yep, so to recap we have two changes :
>
>> 1) The one I sent (taking into account the time of last ACK we
> received) to compute the
>> timer delays.
>
>> 2) The one you suggest, avoiding to send a probe if we have packets in
> flight, relying
>> on normal retransmits timers.
>
> I agree with these two changes, but I think the patch for point 2 given
> by Eric is not correct:
>
>
> elapsed = keepalive_time_when(tp);
>
> if (tp->packets_out || tcp_send_head(sk))
> if (tcp_retries2_time < keepalive_time_when(tp))
> goto resched;
> elapsed = tcp_time_stamp - tp->rcv_tstamp;
Hello,
I didn't follow the conversation in all details, but I submitted a series of
patches recently, in which one of those the time was calculated out of
tcp_retries. It's the post "[PATCH 3/3] Revert Backoff [v3]: Calculate TCP's
connection close threshold as a time value." from Aug 26, 2009 at 12:16 CEST.
This is the code with the calculation procedure:
--
> static inline bool retransmits_timed_out(const struct sock *sk,
> unsigned int boundary)
> {
> int limit, K;
> if (!inet_csk(sk)->icsk_retransmits)
> return false;
>
> K = ilog2(TCP_RTO_MAX/TCP_RTO_MIN);
>
> if (boundary <= K)
> limit = ((2 << boundary) - 1) * TCP_RTO_MIN;
> else
> limit = ((2 << K) - 1) * TCP_RTO_MIN +
> (boundary - K) * TCP_RTO_MAX;
>
> return (tcp_time_stamp - tcp_sk(sk)->retrans_stamp) >= limit;
> }
--
Given some boundary like tcp_retries2, it computes a limit, which should
be your tcp_retries2_time.
If that's not what you meant, then I'm sorry, and you can ignore it. :)
Regards
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists