Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 20 Jun 2002 09:09:46 -0700 (PDT)
From:      John Polstra <jdp@polstra.com>
To:        net@freebsd.org
Cc:        paleph@pacbell.net
Subject:   Re: bge driver issue
Message-ID:  <200206201609.g5KG9kS22944@vashon.polstra.com>
In-Reply-To: <200206182206.g5IM6P003388@pacbell.net>
References:  <200206182206.g5IM6P003388@pacbell.net>

next in thread | previous in thread | raw e-mail | index | archive | help
In article <200206182206.g5IM6P003388@pacbell.net>,
 <paleph@pacbell.net> wrote:
> We have a Dell poweredge 2650 (successor to 2550).
> 
> We also saw the same problem with 4.5. I tried the current bge driver from 4.6
> without success. The problem seems to be a size problem. When we ftp a small
> file, things work fine. However, when we try a 18 Megabyte file, the ftp
> hands and we see the problem descriped below. The linux system that came
> with the hardware (from dell) worked fine.

On the 2650 or any other x86 PCI-X system, please try the following
simple experiment.  Edit "src/sys/dev/bge/if_bgereg.h".  Find this
line:

    #define ETHER_ALIGN 2

Change the "2" to "0".  Build and install a new kernel.  See whether
it solves the problem.

Here is the reasoning behind the experiment.  The bge driver sets
things up so that the NIC DMAs received packets into mbuf clusters
starting ETHER_ALIGN bytes from the beginning of the buffer.  That is
done so the payload after the 14- or 18-byte Ethernet header will be
aligned in memory at a 4-byte boundary.  The Linux driver from 3Com
for the 3c996B-T does the same thing.  However, on PCI-X busses only,
that driver disables the 2-byte offsetting and stores received packets
at the very beginning of the buffer in memory.  It is reasonable to
assume that they went to all that trouble for a reason -- for example,
a chip bug.

This change will impact performance on the x86 architecture, and it
will flat-out break Alphas and most other architectures.  The actual
fix would have to be more intelligent, but this is just an experiment.

Please report back after you have tried this change.  I know two
people who have reported that it solved the problems they were having
with BCM5701 chips in PCI-X systems.

John
-- 
  John Polstra
  John D. Polstra & Co., Inc.                        Seattle, Washington USA
  "Disappointment is a good sign of basic intelligence."  -- Chögyam Trungpa


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-net" in the body of the message




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