Subject: kern/5267: de driver locks up on output
To: None <gnats-bugs@gnats.netbsd.org>
From: Bill Sommerfeld <wes@heap.epilogue.com>
List: netbsd-bugs
Date: 04/08/1998 14:52:23
>Number:         5267
>Category:       kern
>Synopsis:       de driver locks up on output
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    kern-bug-people (Kernel Bug People)
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Apr  8 12:05:00 1998
>Last-Modified:
>Originator:     Bill Sommerfeld
>Organization:
none
>Release:        NetBSD current as of 980405
>Environment:
	
System: NetBSD heap.epilogue.com 1.3E NetBSD 1.3E (HEAPII) #10: Mon Apr 6 16:22:33 EDT 1998 root@heap.epilogue.com:/usr/src/sys/arch/i386/compile/HEAPII i386


>Description:
	I built a -current kernel with the recent receive-side hang fix 
	and with TULIP_BUS_DMA_NORX turned off (previously it was turned
	on as a workaround).

	After sending a large number of back-to-back packets, the
	driver locks up for transmit; `ifconfig de0' shows that
	OACTIVE is set.

	Taking the interface down and bringing it back up resets the
	device enough that things start working again.

	Running tcpdump on the host with the de0 interface causes the
	problem to be not reproduceable

	tcpdump on a third system showed a burst of ~37 packets,
	mostly tinygrams, in the last ~15ms before the interface locks
	up.

	I'm currently setting the following variables (as an experiment);
		sysctl -w net.inet.ip.mtudisc=1
		sysctl -w net.inet.tcp.init_win=0

	I know ssh turns off the Nagle algorithm by setting TCP_NODELAY..
	but this behavior looks really heinous.. it could be much
	better behaved..

14:33:05.180281 heap.epilogue.com.65354 > newmoag.epilogue.com.ssh: P 59944:60544(600) ack 1080 win 17520 <nop,nop,timestamp 332169 38366307> (DF) [tos 0x10]
14:33:05.181594 heap.epilogue.com.65354 > newmoag.epilogue.com.ssh: . 60544:61992(1448) ack 1080 win 17520 <nop,nop,timestamp 332169 38366307> (DF) [tos 0x10]
14:33:05.182062 heap.epilogue.com.65354 > newmoag.epilogue.com.ssh: P 61992:62592(600) ack 1080 win 17520 <nop,nop,timestamp 332169 38366307> (DF) [tos 0x10]
14:33:05.183377 heap.epilogue.com.65354 > newmoag.epilogue.com.ssh: . 62592:64040(1448) ack 1080 win 17520 <nop,nop,timestamp 332169 38366307> (DF) [tos 0x10]
14:33:05.183869 heap.epilogue.com.65354 > newmoag.epilogue.com.ssh: P 64040:64640(600) ack 1080 win 17520 <nop,nop,timestamp 332169 38366307> (DF) [tos 0x10]
14:33:05.185178 heap.epilogue.com.65354 > newmoag.epilogue.com.ssh: . 64640:66088(1448) ack 1080 win 17520 <nop,nop,timestamp 332169 38366307> (DF) [tos 0x10]
14:33:05.185315 newmoag.epilogue.com.ssh > heap.epilogue.com.65354: . ack 64040 win 17376 <nop,nop,timestamp 38366312 332169> (DF) [tos 0x10]
14:33:05.185798 heap.epilogue.com.65354 > newmoag.epilogue.com.ssh: P 66088:66688(600) ack 1080 win 17520 <nop,nop,timestamp 332169 38366307> (DF) [tos 0x10]
14:33:05.187143 heap.epilogue.com.65354 > newmoag.epilogue.com.ssh: . 66688:68136(1448) ack 1080 win 17520 <nop,nop,timestamp 332169 38366307> (DF) [tos 0x10]
14:33:05.187614 heap.epilogue.com.65354 > newmoag.epilogue.com.ssh: P 68136:68736(600) ack 1080 win 17520 <nop,nop,timestamp 332169 38366307> (DF) [tos 0x10]
14:33:05.187775 heap.epilogue.com.65354 > newmoag.epilogue.com.ssh: P 68736:68836(100) ack 1080 win 17520 <nop,nop,timestamp 332169 38366307> (DF) [tos 0x10]
14:33:05.187940 heap.epilogue.com.65354 > newmoag.epilogue.com.ssh: P 68836:68936(100) ack 1080 win 17520 <nop,nop,timestamp 332169 38366307> (DF) [tos 0x10]
14:33:05.188107 heap.epilogue.com.65354 > newmoag.epilogue.com.ssh: P 68936:69036(100) ack 1080 win 17520 <nop,nop,timestamp 332169 38366307> (DF) [tos 0x10]
14:33:05.188308 heap.epilogue.com.65354 > newmoag.epilogue.com.ssh: P 69036:69136(100) ack 1080 win 17520 <nop,nop,timestamp 332169 38366307> (DF) [tos 0x10]
14:33:05.188499 heap.epilogue.com.65354 > newmoag.epilogue.com.ssh: P 69136:69236(100) ack 1080 win 17520 <nop,nop,timestamp 332169 38366307> (DF) [tos 0x10]
14:33:05.188691 heap.epilogue.com.65354 > newmoag.epilogue.com.ssh: P 69236:69336(100) ack 1080 win 17520 <nop,nop,timestamp 332169 38366307> (DF) [tos 0x10]
14:33:05.188880 heap.epilogue.com.65354 > newmoag.epilogue.com.ssh: P 69336:69436(100) ack 1080 win 17520 <nop,nop,timestamp 332169 38366307> (DF) [tos 0x10]
14:33:05.189071 heap.epilogue.com.65354 > newmoag.epilogue.com.ssh: P 69436:69536(100) ack 1080 win 17520 <nop,nop,timestamp 332169 38366307> (DF) [tos 0x10]
14:33:05.189189 heap.epilogue.com.65354 > newmoag.epilogue.com.ssh: P 69536:69544(8) ack 1080 win 17520 <nop,nop,timestamp 332169 38366307> (DF) [tos 0x10]
14:33:05.190227 heap.epilogue.com.65354 > newmoag.epilogue.com.ssh: . 69544:70992(1448) ack 1080 win 17520 <nop,nop,timestamp 332169 38366307> (DF) [tos 0x10]
14:33:05.190712 heap.epilogue.com.65354 > newmoag.epilogue.com.ssh: P 70992:71592(600) ack 1080 win 17520 <nop,nop,timestamp 332169 38366307> (DF) [tos 0x10]
14:33:05.192004 heap.epilogue.com.65354 > newmoag.epilogue.com.ssh: . 71592:73040(1448) ack 1080 win 17520 <nop,nop,timestamp 332169 38366307> (DF) [tos 0x10]
14:33:05.192488 heap.epilogue.com.65354 > newmoag.epilogue.com.ssh: P 73040:73640(600) ack 1080 win 17520 <nop,nop,timestamp 332169 38366307> (DF) [tos 0x10]
14:33:05.193789 heap.epilogue.com.65354 > newmoag.epilogue.com.ssh: . 73640:75088(1448) ack 1080 win 17520 <nop,nop,timestamp 332169 38366307> (DF) [tos 0x10]
14:33:05.194275 heap.epilogue.com.65354 > newmoag.epilogue.com.ssh: P 75088:75688(600) ack 1080 win 17520 <nop,nop,timestamp 332169 38366307> (DF) [tos 0x10]
14:33:05.195621 heap.epilogue.com.65354 > newmoag.epilogue.com.ssh: . 75688:77136(1448) ack 1080 win 17520 <nop,nop,timestamp 332169 38366307> (DF) [tos 0x10]
14:33:05.196110 heap.epilogue.com.65354 > newmoag.epilogue.com.ssh: P 77136:77736(600) ack 1080 win 17520 <nop,nop,timestamp 332169 38366307> (DF) [tos 0x10]
14:33:05.197396 heap.epilogue.com.65354 > newmoag.epilogue.com.ssh: . 77736:79184(1448) ack 1080 win 17520 <nop,nop,timestamp 332169 38366307> (DF) [tos 0x10]
14:33:05.197870 heap.epilogue.com.65354 > newmoag.epilogue.com.ssh: P 79184:79784(600) ack 1080 win 17520 <nop,nop,timestamp 332169 38366307> (DF) [tos 0x10]
14:33:05.198029 heap.epilogue.com.65354 > newmoag.epilogue.com.ssh: P 79784:79884(100) ack 1080 win 17520 <nop,nop,timestamp 332169 38366307> (DF) [tos 0x10]
14:33:05.198191 heap.epilogue.com.65354 > newmoag.epilogue.com.ssh: P 79884:79984(100) ack 1080 win 17520 <nop,nop,timestamp 332169 38366307> (DF) [tos 0x10]
14:33:05.198355 heap.epilogue.com.65354 > newmoag.epilogue.com.ssh: P 79984:80084(100) ack 1080 win 17520 <nop,nop,timestamp 332169 38366307> (DF) [tos 0x10]
14:33:05.198549 heap.epilogue.com.65354 > newmoag.epilogue.com.ssh: P 80084:80184(100) ack 1080 win 17520 <nop,nop,timestamp 332169 38366307> (DF) [tos 0x10]
14:33:05.198738 heap.epilogue.com.65354 > newmoag.epilogue.com.ssh: P 80184:80284(100) ack 1080 win 17520 <nop,nop,timestamp 332169 38366307> (DF) [tos 0x10]
14:33:05.198925 heap.epilogue.com.65354 > newmoag.epilogue.com.ssh: P 80284:80384(100) ack 1080 win 17520 <nop,nop,timestamp 332169 38366307> (DF) [tos 0x10]
14:33:05.199116 heap.epilogue.com.65354 > newmoag.epilogue.com.ssh: P 80384:80484(100) ack 1080 win 17520 <nop,nop,timestamp 332169 38366307> (DF) [tos 0x10]
14:33:05.199307 heap.epilogue.com.65354 > newmoag.epilogue.com.ssh: P 80484:80584(100) ack 1080 win 17520 <nop,nop,timestamp 332169 38366307> (DF) [tos 0x10]
14:33:05.199499 heap.epilogue.com.65354 > newmoag.epilogue.com.ssh: P 80584:80684(100) ack 1080 win 17520 <nop,nop,timestamp 332169 38366307> (DF) [tos 0x10]
14:33:05.199689 heap.epilogue.com.65354 > newmoag.epilogue.com.ssh: P 80684:80784(100) ack 1080 win 17520 <nop,nop,timestamp 332169 38366307> (DF) [tos 0x10]
14:33:05.199879 heap.epilogue.com.65354 > newmoag.epilogue.com.ssh: P 80784:80884(100) ack 1080 win 17520 <nop,nop,timestamp 332169 38366307> (DF) [tos 0x10]
14:33:05.200067 heap.epilogue.com.65354 > newmoag.epilogue.com.ssh: P 80884:80984(100) ack 1080 win 17520 <nop,nop,timestamp 332169 38366307> (DF) [tos 0x10]
14:33:05.200257 heap.epilogue.com.65354 > newmoag.epilogue.com.ssh: P 80984:81084(100) ack 1080 win 17520 <nop,nop,timestamp 332169 38366307> (DF) [tos 0x10]
14:33:05.200446 heap.epilogue.com.65354 > newmoag.epilogue.com.ssh: P 81084:81184(100) ack 1080 win 17520 <nop,nop,timestamp 332169 38366307> (DF) [tos 0x10]
14:33:05.200637 heap.epilogue.com.65354 > newmoag.epilogue.com.ssh: P 81184:81284(100) ack 1080 win 17520 <nop,nop,timestamp 332169 38366307> (DF) [tos 0x10]
14:33:05.200823 heap.epilogue.com.65354 > newmoag.epilogue.com.ssh: P 81284:81384(100) ack 1080 win 17520 <nop,nop,timestamp 332169 38366307> (DF) [tos 0x10]
14:33:05.200952 heap.epilogue.com.65354 > newmoag.epilogue.com.ssh: P 81384:81416(32) ack 1080 win 17520 <nop,nop,timestamp 332169 38366307> (DF) [tos 0x10]
14:33:05.225655 newmoag.epilogue.com.ssh > heap.epilogue.com.65354: . ack 81416 win 0 <nop,nop,timestamp 38366312 332169> (DF) [tos 0x10]
14:33:05.246189 newmoag.epilogue.com.ssh > heap.epilogue.com.65354: . ack 81416 win 16384 <nop,nop,timestamp 38366312 332169> (DF) [tos 0x10]


>How-To-Repeat:
	reproduced several times by using `cvs update' against a local
	CVS server running FreeBSD.

>Fix:
	unknown at this time; i can try a fix on very short notice if necessary.
>Audit-Trail:
>Unformatted: