Subject: Re: README: new callout code committed
To: None <current-users@netbsd.org>
From: Jason R Thorpe <thorpej@zembu.com>
List: current-users
Date: 03/23/2000 14:48:19
On Thu, Mar 23, 2000 at 01:48:58PM -0800, Jonathan Stone wrote:

 > Using a timing-wheel based callout for TCP timers is better than what
 > we have, but it has its own problems.  One of them is that most TCP
 > timeouts never fire; they get canceleld. Another is timer management
 > for TIME_WAIT. The state of the art here is already better than simply
 > using the Costello & Vargese techniques. (ISTR a Usenix paper, but I
 > couldnt find the title by grepping my bibilography).

Right, well, there's one nasty little problem.  Twice a second, we
currently traverse *ALL* open TCP connections, and doing the following
for each of the 4 timers:

	if (timer is enabled) {
		decrememnt counter;
		if (counter is zero) {
			fire off timer;
		}
	}

This simply does not scale very well.

 > The second, which dates to Tahoe TCP, is that for "typical" wide-area
 > TCP connections, you dont want too fine a timer granularity; that can
 > interact with RTT estimation in ways that are counter-intuitive, at
 > first.  Whehter still that applies to New-Reno, I forget.  I'll try
 > and remember to check with some of Dave Clark's former group members.
 > ( might be worth asking tcp-impl, too).
 > 
 > Jason may well have already taken all this into consideration, tho'.

Right, so I was aware of this problem, too.  My thought was to not use
the finer granularity, just the better timer mechanism.  This can be
easily achieved by rounding up, although I guess what actually happens
now is that we round down :-)

-- 
        -- Jason R. Thorpe <thorpej@zembu.com>