Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 7 Jun 1996 23:49:08 +0200
From:      Torsten Koehler <tk@pars.sics.se>
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   kern/1301: DEC FDDI/PCI Adapter: halt code = 6 (DMA Error)  
Message-ID:  <199606072149.XAA01592@pars.sics.se>
Resent-Message-ID: <199606072150.OAA25794@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         1301
>Category:       kern
>Synopsis:       DEC FDDI/PCI Adapter: halt code = 6 (DMA Error)
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Jun  7 14:50:02 PDT 1996
>Last-Modified:
>Originator:     Torsten Koehler
>Organization:
SICS 
>Release:        FreeBSD 2.1-STABLE i386
>Environment:

DEC FDDI/PCI adapter FW 2.46, HW 1,
both FreeBSD 2.1.0 or 2.2-960501-SNAP.

>Description:

Under high load conditions and with certain packet sizes,
the FDDI card reports an DMA error. The FDDI link goes down
and the computer is locked for a couple of seconds due to
ongoing adapter reinitialization.	

The DMA error occurres with ping packet sizes of 2040 and
4089 bytes (it looks like that all ping packet sizes greater
than 4088 create that error). Adding IP and FDDI headers,
those ping packet sizes correspond to DMA segments of size
41+2048+1 and 41+2048+2048+1. Segment sizes of 41+2048 
and 41+2048+2048 don't create an DMA error.

>How-To-Repeat:

ping 2.1.0. has been modified to create higher output (see below):

359c359
<                       timeout.tv_sec = 0;
---
>                       /* timeout.tv_sec = 0;
363c363
<                           (fd_set *)NULL, &timeout) < 1)
---
>                           (fd_set *)NULL, &timeout) < 1) */
448c448
<       if (i < 0 || i != cc)  {
---
>       if ((i < 0 || i != cc) && errno != 55)  {

Create an ARP entry for a non-existing host (might not be neccessary,
that's how I've tested it). 

./ping -q -f -s 4088 host		# no error 
./ping -q -f -s 4089 host		# dma error

/kernel.210_GEN_FDDI: fpa0: Halted: halt code = 6 (DMA Error)

>Fix:

Reduce mtu size and load.
>Audit-Trail:
>Unformatted:
Torsten Koehler



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199606072149.XAA01592>