Re: [PATCH] tcp: bound RTO to minimum
flat view
From: Arnd Hannemann <hidden>
Date: 2011-08-25 08:55:39
Hi, Am 25.08.2011 10:26, schrieb Eric Dumazet:
Le jeudi 25 août 2011 à 09:28 +0200, Alexander Zimmermann a écrit :quoted
Hi Eric, Am 25.08.2011 um 07:28 schrieb Eric Dumazet:quoted
quoted
Real question is : do we really want to process ~1000 timer interrupts per tcp session, ~2000 skb alloc/free/build/handling, possibly ~1000 ARP requests, only to make tcp revover in ~1sec when connectivity returns back. This just doesnt scale.maybe a stupid question, but 1000?. With an minRTO of 200ms and a maximum probing time of 120s, we 600 retransmits in a worst-case-senario (assumed that we get for every rot retransmission an icmp). No?Where is asserted the "max probing time of 120s" ? It is not the case on my machine : I have way more retransmits than that, even if spaced by 1600 ms 07:16:13.389331 write(3, "\350F\235JC\357\376\363&\3\374\270R\21L\26\324{\37p\342\244i\304\356\241I:\301\332\222\26"..., 48) = 48 07:16:13.389417 select(7, [3 4], [], NULL, NULL) = 1 (in [3]) 07:31:39.901311 read(3, 0xff8c4c90, 8192) = -1 EHOSTUNREACH (No route to host) Old kernels where performing up to 15 retries, doing exponential backoff. Now its kind of unlimited, according to experimental results.
That shouldn't be. It should stop after the same time a TCP connection with an RTO of Minimum RTO which is doing 15 retries (tcp_retries2=15) and doing exponential backoff. So it should be around 900s*. But it could be that because of the icsk_retransmit wrapover this doesn't work as expected. * 200ms + 400ms + 800ms ... Best regards, Arnd