Bug 24645

Summary: sometimes delayed ACKs timeout
Product: Base System Reporter: Paul Herman <pherman>
Component: kernAssignee: freebsd-bugs (Nobody) <bugs>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: 4.2-STABLE   
Hardware: Any   
OS: Any   
Attachments:
Description Flags
file.diff none

Description Paul Herman 2001-01-25 23:00:01 UTC
	When receiving large windows worth of data, a delayed ack 
	sometimes won't properly fire off, and the TCP will halt
	for 100ms (or net.inet.tcp.delacktime) multiple times in
	one connection.  In a default installation, this can result
	in a transfer being up to 10x slower.

	This was hashed out on freebsd-net.  See the mail archives with 
        the Subject: "I have delayed ACK problems".

Fix: The following patch to tcp_input.c will patch cleanly against
	-STABLE and -CURRENT.
How-To-Repeat: 
	tar cf localhost:/tmp/foo /boot/kernel
Comment 1 Paul Herman 2001-01-26 12:36:01 UTC
Just a quick follow-up,

On Thu, 25 Jan 2001, Paul Herman wrote:

> +		if (tcp_delack_enabled) { \
> +			if (callout_pending(tp->tt_delack)) { \
> +				callout_stop(tp->tt_delack); \

Jonathan, as you suggested, I tried it without callout_stop() and
works just fine.  You can omit the calls.

-Paul.
Comment 2 jlemon freebsd_committer freebsd_triage 2001-11-02 17:56:37 UTC
State Changed
From-To: open->closed

Fixed in rev 1.124 of tcp_input.c, and MFC'd to stable.