freebsd-dev/sys
Scott Long 3469383f4f Big update to the iir driver:
- Don't use a common buffer in the softc to store per-command data.  Reserve
  a buffer in the command itself.
- Don't allocate DMA memory for the kernel command structures when all you
  really need is DMA memory for the scratch buffer embedded in them.  Instead
  allocate a slab for the scratch buffers and divide it up as needed.
- Call bus_dmamap_unload() at the completion of commands.
- Preserve and clear the CAM CCB status flags at completion.
- Reorder some low-level command operations to try to close races.
- Limit the simq to 32 commands for now.  There are some serious problems
  with the driver under load that are not well understood, so keeping the
  simq lower helps avoid this.  It has been tested at a higher value, but
  this is a safe value that doesn't show much performance degredation.

These changes allow the driver to work reliably with >4GB of memory on i386
and amd64, and also work around deadlocks seen under very high load in
certain situations.  The work-around is far from ideal, but without and
documentation it is hard to know what the right fix is.

MFC candidate
2006-03-01 07:24:39 +00:00
..
alpha Close some races between procfs/ptrace and exit(2): 2006-02-22 18:57:50 +00:00
amd64 guard function decls with _KERNEL so user code can include this file 2006-03-01 05:59:56 +00:00
arm Get this to compile with the recent UART changes. 2006-02-27 23:19:13 +00:00
boot Remove ELF dynamic tag definitions that aren't used. Ideally, 2006-01-18 18:49:25 +00:00
bsm Merge OpenBSM 1.0 alpha 3 include file changes from contrib/openbsm/bsm 2006-02-06 01:12:46 +00:00
cam - Add a scsi_da.c and a umass.c quirk for Genesys 6-in-1 Card Reader. 2006-01-30 20:27:44 +00:00
coda CODA_COMPAT_5 may not be defined unconditionally in the coda5 module. 2006-02-27 12:04:13 +00:00
compat regen for 32bit sendfile 2006-02-28 19:39:52 +00:00
conf Move de driver to dev/de 2006-02-26 17:54:04 +00:00
contrib resolve merge conflicts 2006-02-10 19:01:02 +00:00
crypto
ddb Fix -Wundef. 2005-12-04 02:12:43 +00:00
dev Big update to the iir driver: 2006-03-01 07:24:39 +00:00
doc
fs Correct the vnode locking in fdescfs. 2006-02-28 00:05:44 +00:00
gdb
geom Do not use bio structure after g_io_deliver(), it may not longer by valid. 2006-02-22 10:21:05 +00:00
gnu Add marker vnodes to ensure that all vnodes associated with the mount point are 2006-01-09 20:42:19 +00:00
i4b Fix -Wundef warnings found when compiling i386 LINT, GENERIC and 2005-12-05 11:58:35 +00:00
i386 Rework how we wire up interrupt sources to CPUs: 2006-02-28 22:24:55 +00:00
ia64 Close some races between procfs/ptrace and exit(2): 2006-02-22 18:57:50 +00:00
isa Tweak how the MD code calls the fooclock() methods some. Instead of 2005-12-22 22:16:09 +00:00
isofs/cd9660 I ran into an nfs client panic a couple of times in a row over the 2006-01-17 17:29:03 +00:00
kern Regenerate. 2006-03-01 06:49:38 +00:00
libkern Convert function declarations to ANSI C. 2006-01-22 00:46:40 +00:00
modules This patch fixes a problem, which exists if you have IPSEC in your kernel 2006-02-27 16:56:22 +00:00
net Fix up the Bridge Identifier field in the BPDU packet. 2006-02-28 00:13:24 +00:00
net80211 consolidate calculation of capabilities ie 2006-02-25 05:36:43 +00:00
netatalk - Store pointer to the link-level address right in "struct ifnet" 2005-11-11 16:04:59 +00:00
netatm Convert to ANSI C function declarations. 2006-01-22 01:07:11 +00:00
netgraph Clear csum_flags after reading data from socket buffer. Otherwise, 2006-02-21 13:04:39 +00:00
netinet Rework TCP window scaling (RFC1323) to properly scale the send window 2006-02-28 23:05:59 +00:00
netinet6 avoided the use of purged address structure when an address became 2006-02-12 15:37:08 +00:00
netipsec Fix stack corruptions on amd64. 2006-01-21 10:44:34 +00:00
netipx In spx_attach() and spx_detach(), there is no need to check whether the 2006-01-14 00:05:44 +00:00
netkey Fix stack corruptions on amd64. 2006-01-21 10:44:34 +00:00
netnatm Use sparse initializers for "struct domain" and "struct protosw", 2005-11-09 13:29:16 +00:00
netncp In ncp_sysctl_connstat(), the SLIST_FOREACH() logic to check 'error' 2006-01-14 11:40:32 +00:00
netsmb Although we check the return value of copyin(9) while determaining how 2006-01-16 17:03:21 +00:00
nfs
nfs4client Use nfs4_disconnect for connections opened with nfs4_connect. 2006-01-19 22:48:31 +00:00
nfsclient Don't log an error on tcp connection reset, even if we don't get ECONNRESET. 2006-01-20 15:07:18 +00:00
nfsserver - Reorder calls to vrele() after calls to vput() when the vrele is a 2006-02-01 00:25:26 +00:00
opencrypto This patch fixes a problem, which exists if you have IPSEC in your kernel 2006-02-27 16:56:22 +00:00
pc98 - Use bus_setup_intr() and bus_teardown_intr() to register device driver 2006-02-22 18:16:26 +00:00
pccard I don't believe these are used at all, and can be safely removed 2006-01-15 06:49:28 +00:00
pci Remove de driver from old location. 2006-02-26 17:52:51 +00:00
posix4 mqueue.h has been superceded by sys/mqueue.h thanks to David Xu's work. 2005-11-28 02:58:30 +00:00
powerpc Simplify system time accounting for profiling. 2006-02-08 08:09:17 +00:00
rpc Fix up some cut-n-paste damage and some out-of-date comments. 2006-01-20 15:20:41 +00:00
security Add stub AUE_EACCESS entry. 2006-02-11 23:55:08 +00:00
sparc64 Fix a c/p error. 2006-02-28 21:25:00 +00:00
sys Regenerate. 2006-03-01 06:49:38 +00:00
tools Fix a leftover "iwi_boot" string. 2006-01-30 16:32:08 +00:00
ufs - Using LK_NOWAIT in qsync() can get us into infinite loop situations that 2006-02-22 06:12:53 +00:00
vm Lock the vm_object while checking its type to see if it is a vnode-backed 2006-02-21 22:09:54 +00:00
Makefile add nfsclient/, nfs4client/, and rpc/ directories to the 2006-01-10 20:58:27 +00:00