freebsd-nq/sys
Matt Jacob 819e7ffdf3 Whack on this soon to be deprecated driver.
What the heck, the OpenBSD version will benefit.

1. Add wx_txint_delay as a tunable (defaults to 5000 now, or ~5ms) and switch
to using delayed TXDW interrupts. Since the chip continues to reload the
TIDV with this value for each descriptor written back, this allows continued
deferral of the actual interrupt until the last packet completes (assuming
that 5ms between multiple packets transmitting is reasonable).

2. Add two other SYSCTL entities:

hw.wx.dump_stats
hw.wx.clear_stats

to be used, hackey hackey, to get the watchdog routine to dump/clear
the current softc statistics.

Usage would be:

	sysctl -w hw.wx.dump_stats=UNIT

to cause the current stats to be dumped for UNIT.

3. Attempt to clean up wx_detach routine so we don't panic. Well, things
still panic, but given that the code is just like other NIC drivers,
I suspect it's actually something elsewhere, like e1000phy, that's actually
blowing up.

4. Skip the entire test for runt packets- after doing somet thinking
and experimenting, I believe that the chip only doesn't like it if
the whole frame to xmit is < 16 bytes- each TFD can be some fragment
of that. This should improve performance a chunk because of all of the
(14 byte ETHERHEADER + DATA) mbuf chains.

5. Keep track of total frame length. Try not to xmit an odd byte frame-
this is supposed to get around some dumb Cisco switch problems.

6. On the last packet, also set Interrupt Delay && Report Packet Sent
(see #1 above)

7. Attempt to do xmit garbage collection *first* in order to avoid setting
IFF_OACTIVE if at all possible.

MFC after:	1 week
2001-10-15 06:59:41 +00:00
..
alpha Backed out the quick fixes for the transient breakage of <sys/mount.h> 2001-10-13 06:05:37 +00:00
amd64 Change vmapbuf() to use pmap_qenter() and vunmapbuf() to use pmap_qremove(). 2001-10-14 21:09:04 +00:00
arm Make MAXTSIZ, DFLDSIZ, MAXDSIZ, DFLSSIZ, MAXSSIZ, SGROWSIZ loader 2001-10-10 23:06:54 +00:00
boot Fix typo in comment. 2001-10-11 13:47:20 +00:00
cam Add a quirk entry so that the Maxtor 3000LE USB drive will work. 2001-10-15 02:05:06 +00:00
coda Fixed bitrot in a banal comment by removing the comment. 2001-10-13 06:57:59 +00:00
compat When casting from uid16/gid16 to uid/gid respectively, make sure 2001-10-14 03:56:53 +00:00
conf Remove another unneeded instance of -elf. 2001-10-14 06:02:16 +00:00
contrib Remove file obsoleted by the 20010920 snapshot. 2001-10-04 23:17:35 +00:00
crypto properly check DES weak key. KAME PR 363. 2001-07-03 17:46:48 +00:00
ddb Fill out some gaps in ia64 DDB support. This involves generalising DDB's 2001-09-15 11:06:07 +00:00
dev Fix it so that it doesn't complain for compiles on alpha- that is, match 2001-10-14 19:44:15 +00:00
fs Fixed bitrot in a banal comment by removing the comment. 2001-10-13 06:57:59 +00:00
geom KSE Milestone 2 2001-09-12 08:38:13 +00:00
gnu The addition of i_dirhash to struct inode pushed RELENG_4's 2001-09-24 18:29:20 +00:00
i4b sppp rewrites the interface's ip address directly; this breaks when the 2001-10-01 18:03:56 +00:00
i386 Change vmapbuf() to use pmap_qenter() and vunmapbuf() to use pmap_qremove(). 2001-10-14 21:09:04 +00:00
ia64 Only the first eight arguments can possibly be in stacked registers. 2001-10-13 08:06:20 +00:00
isa Hack for the "out-of-sync" error. 2001-10-13 10:28:02 +00:00
isofs/cd9660 KSE Milestone 2 2001-09-12 08:38:13 +00:00
kern o Update init_sysent.c and friends for allocation of afs_syscall. 2001-10-13 13:30:21 +00:00
libkern Implement these using mux1 and extr.u. I'll update the userland versions 2001-10-06 08:35:05 +00:00
modules Make MAXTSIZ, DFLDSIZ, MAXDSIZ, DFLSSIZ, MAXSSIZ, SGROWSIZ loader 2001-10-10 23:06:54 +00:00
net bring in ARP support for variable length link level addresses 2001-10-14 20:17:53 +00:00
netatalk KSE Milestone 2 2001-09-12 08:38:13 +00:00
netatm KSE Milestone 2 2001-09-12 08:38:13 +00:00
netgraph Fix bug that cheated hook names out of the last 2 bytes. 2001-10-10 19:58:11 +00:00
netinet bring in ARP support for variable length link level addresses 2001-10-14 20:17:53 +00:00
netinet6 Make faith loadable, unloadable, and clonable. 2001-09-25 18:40:52 +00:00
netipx KSE Milestone 2 2001-09-12 08:38:13 +00:00
netkey KSE Milestone 2 2001-09-12 08:38:13 +00:00
netnatm Change a couple of M_WAITOKs used in M_PREPEND() to M_TRYWAITs, which 2001-04-05 04:20:48 +00:00
netncp Change the kernel's ucred API as follows: 2001-10-11 23:38:17 +00:00
netns
netsmb Map errdos:67 to the ENOENT. 2001-08-21 09:16:57 +00:00
nfs Unwind some more macros. NFSMADV() was kinda silly since it was right 2001-09-28 04:37:08 +00:00
nfsclient Change the kernel's ucred API as follows: 2001-10-11 23:38:17 +00:00
nfsserver Unwind some more macros. NFSMADV() was kinda silly since it was right 2001-09-28 04:37:08 +00:00
pc98 Rewrite the pc98 bus_space stuff. 2001-10-07 10:04:18 +00:00
pccard takashi shibagaki-san posted a similar patch to nomads. It seems that 2001-10-11 05:41:27 +00:00
pci Whack on this soon to be deprecated driver. 2001-10-15 06:59:41 +00:00
posix4 KSE Milestone 2 2001-09-12 08:38:13 +00:00
powerpc Fix typo. 2001-10-15 01:04:49 +00:00
rpc
sparc64 Add inthand_add() and inthand_remove() for use by the MD bus code and 2001-10-12 16:06:41 +00:00
svr4
sys o Update init_sysent.c and friends for allocation of afs_syscall. 2001-10-13 13:30:21 +00:00
tools KSE Milestone 2 2001-09-12 08:38:13 +00:00
ufs Change the kernel's ucred API as follows: 2001-10-11 23:38:17 +00:00
vm Don't remove all mappings of a swapped out process if the vm map contained 2001-10-14 20:51:14 +00:00
Makefile