freebsd-dev/sys
wpaul 0a28da8941 Increase the number of descriptors (and, as a consequence, the number
of associated mbuf clusters) in the RX ring from 4 to 16. On my
really fast PI 400Mhz test machines, 4 descriptors (and associated
mbuf clusters) is enough to achieve decent performance without any
RX overruns. However, one person reported problems with the following
scenario:

- P90 system running FreeBSD with a 3c905B-TX adapter, slow IDE hard
  disk (Quantum Bigfoot?)
- PII 266 with SCSI disks running LoseNT and also with a 3c905B-TX
- Both machines connected together via crossover cable at 100Mbps
  full-duplex
- LoseNT machine writing largs amounts of data (2.5 GB work of
  files each in the neighborhood of 1 to 2 MB in size) via samba to
  the FreeBSD machine

In this case, the LoseNT machine is sending data very fast. Apparently
there weren't any problems initially because the user was writing to
one particular disk which was relatively fast, however after this disk
filled up and the user started writing to the second slower disk, RX
overruns would occur and sometimes the RX DMA engine would stall after
a 100 to 500MB had been transfered. The xl_rxeof() handler is supposed
to detect this condition and restart the upload engine; I'm not sure
why it doesn't, unless interrupts are being lost and the rx handler
isn't getting called.

This is still an improvement over the Linux driver, which uses 32
descriptors in its receive ring. :)

Problem reported by: Heiko Schaefer <hschaefer@fto.de>
1998-08-21 16:58:48 +00:00
..
alpha Add support for TurboChannel alphas (DEC 3000/300 and 3000/500). 1998-08-20 08:27:11 +00:00
amd64 Presently there is only one `currentldt' variable for all cpus 1998-08-18 07:47:12 +00:00
boot This commit was generated by cvs2svn to compensate for changes in r38465, 1998-08-21 03:17:42 +00:00
compat Use [u]intptr_t instead of [u_]long for casts between pointers and 1998-08-16 01:21:52 +00:00
compile This commit was manufactured by cvs2svn to create branch 'JB'. 1998-01-10 23:00:07 +00:00
conf Add support for TurboChannel alphas (DEC 3000/300 and 3000/500). 1998-08-20 08:27:11 +00:00
contrib Made some disgusting ifdefs even more disgusting to enable the support 1998-08-15 21:51:53 +00:00
ddb Update to work with the new elf headers. 1998-08-17 08:06:31 +00:00
dev A better fix for kern/7144: 1998-08-20 05:49:59 +00:00
fs Removed unused includes. 1998-08-17 19:09:36 +00:00
geom Make struct buf->b_offset reflect the real byte offset which got 1998-08-19 10:50:32 +00:00
gnu Quick fix for breakage of read clustering on non-IDE drives. Read 1998-08-18 03:54:39 +00:00
i386 A better fix for kern/7144: 1998-08-20 05:49:59 +00:00
isa Fixed devfs initialization which I broke in the previous commit. 1998-08-20 05:12:48 +00:00
isofs/cd9660 There is no such thing any more as "struct bdevsw". 1998-07-04 22:30:26 +00:00
kern Moved `nx' functions to the one place where they are used (su.c). 1998-08-20 06:10:42 +00:00
libkern Converted rcsid to $Id$ again. There shouldn't be any rcsids in the kernel. 1998-08-17 19:26:37 +00:00
miscfs Use [u]intptr_t instead of [u_]long for casts between pointers and 1998-08-16 01:21:52 +00:00
modules The daemon, snake and star savers should refuse to load if the current 1998-08-06 09:14:26 +00:00
msdosfs Removed unused includes. 1998-08-17 19:09:36 +00:00
net Implement DLT_RAW from libpcap 1998-08-18 10:13:11 +00:00
netatalk Fixed printf format errors. 1998-08-17 01:05:25 +00:00
netinet Fixed printf format errors. 1998-08-17 01:05:25 +00:00
netipx Fixed printf format errors. 1998-08-17 01:05:25 +00:00
netkey Fixed printf format errors. 1998-08-17 01:05:25 +00:00
netnatm This commit fixes various 64bit portability problems required for 1998-06-07 17:13:14 +00:00
netns This commit was manufactured by cvs2svn to create branch 'JB'. 1998-01-10 23:00:07 +00:00
nfs Fixed printf format errors. 1998-08-18 00:32:50 +00:00
nfsclient Fixed printf format errors. 1998-08-18 00:32:50 +00:00
nfsserver If we get an ENOBUFS from the network, it's normally transient network 1998-08-01 09:04:02 +00:00
pc98 Sync with sys/i386/isa/sio.c revision 1.211. 1998-08-19 11:48:38 +00:00
pccard Fixed printf format errors. 1998-08-18 00:32:50 +00:00
pci Increase the number of descriptors (and, as a consequence, the number 1998-08-21 16:58:48 +00:00
posix4 Set PAGE_SIZE for _SC_PAGESIZE sysconf(). 1998-06-01 21:54:43 +00:00
powerpc Add declaration of {aquire,release}_timer2(). 1998-07-22 08:26:23 +00:00
rpc This commit was manufactured by cvs2svn to create branch 'JB'. 1998-01-10 23:00:07 +00:00
scsi Moved `nx' functions to the one place where they are used (su.c). 1998-08-20 06:10:42 +00:00
sys Moved `nx' functions to the one place where they are used (su.c). 1998-08-20 06:10:42 +00:00
tools VOP_STRATEGY grows an (struct vnode *) argument 1998-07-04 20:45:42 +00:00
ufs Quick fix for breakage of read clustering on non-IDE drives. Read 1998-08-18 03:54:39 +00:00
vm Protect all modifications to paging_in_progress with splvm(). 1998-08-13 08:05:13 +00:00
Makefile Test for the existance of ${MACHINE}/boot before trying to build it. 1998-02-20 07:37:08 +00:00