freebsd-skq/sys
yongari ca23efd661 Split common parent DMA tag into ring DMA tag and TX/RX mbuf DMA
tag. All controllers that are not BCM5755 or higher have 4GB
boundary DMA bug. Previously bge(4) used 32bit DMA address to
workaround the bug(r199670). However this caused the use of bounce
buffers such that it resulted in poor performance for systems which
have more than 4GB memory. Because bus_dma(9) honors boundary
restriction requirement of DMA tag for dynamic buffers, having a
separate TX/RX mbuf DMA tag will greatly reduce the possibility of
using bounce buffers. For DMA buffers allocated with
bus_dmamem_alloc(9), now bge(4) explicitly checks whether the
requested memory region crossed the boundary or not.
With this change, only the DMA buffer that crossed the boundary
will use 32bit DMA address. Other DMA buffers are not affected as
separate DMA tag is created for each DMA buffer.
Even if 32bit DMA address space is used for a buffer, the chance to
use bounce buffer is still very low as the size of buffer is small.
This change should eliminate most usage of bounce buffers on
systems that have more than 4GB memory.

More correct fix would be teaching bus_dma(9) to honor boundary
restriction for buffers created with bus_dmamem_alloc(9) but it
seems that is not easy.

While I'm here cleanup bge_dma_map_addr() and remove unnecessary
member variables in bge_dmamap_arg structure.

Tested by:	marcel
2010-08-31 17:33:48 +00:00
..
amd64 Save MSR_FSBASE, MSR_GSBASE and MSR_KGSBASE directly to PCB as we do not use 2010-08-30 21:19:42 +00:00
arm Supply some useful information to the started image using ELF aux vectors. 2010-08-17 08:55:45 +00:00
boot Use a more robust way to substitute gcc for clang, when compiling 2010-08-31 17:33:29 +00:00
bsm Create a custom branch where I will be able to do the merge. 2010-03-19 00:19:55 +00:00
cam Revert r211434. Offline discussions have convinced me that this should 2010-08-20 17:20:05 +00:00
cddl execve(2) has a special check for file permissions: a file must have at 2010-08-30 16:30:18 +00:00
compat Add x86bios_set_intr() to set interrupt vectors for real mode and simplify 2010-08-25 21:03:50 +00:00
conf Restructure how reset and poweroff are handled on PowerPC systems, since 2010-08-31 15:27:46 +00:00
contrib Merge ACPICA 20100806. 2010-08-06 23:11:19 +00:00
crypto Crypto(4) driver for AESNI. 2010-07-23 11:00:46 +00:00
ddb One more use for _SIG_VALID. 2010-07-12 10:18:10 +00:00
dev Split common parent DMA tag into ring DMA tag and TX/RX mbuf DMA 2010-08-31 17:33:48 +00:00
fs Add a null_remove() function to nullfs, so that the v_usecount 2010-08-31 01:16:45 +00:00
gdb Create a custom branch where I will be able to do the merge. 2010-03-19 00:19:55 +00:00
geom Correct offset conversion to little endian. It was implemented in version 2, 2010-08-28 08:30:20 +00:00
gnu Add dedicated routines to toggle lockmgr flags such as LK_NOSHARE and 2010-08-20 19:46:50 +00:00
i386 Register an interrupt vector for DTrace return probes. There is some 2010-08-28 08:03:29 +00:00
ia64 Remove unused KTRACE includes. 2010-08-19 16:41:27 +00:00
isa When we are not switching VTs, just mark all buffer to be updated. 2010-07-15 23:11:51 +00:00
kern The realloc case for memguard(9) will copy too many bytes when 2010-08-31 16:57:58 +00:00
kgssapi Create a custom branch where I will be able to do the merge. 2010-03-19 00:19:55 +00:00
libkern Provide memchr() in the libkern. 2010-06-02 17:27:23 +00:00
mips Add the workaround for 4xx lite boards after it was lost in the last 2010-08-31 04:18:47 +00:00
modules Add the path necessary to find fasttrap_isa.h to CFLAGS. 2010-08-28 08:18:20 +00:00
net MFp4 CH=182972: 2010-08-27 23:22:58 +00:00
net80211 Wrap remaining ieee80211_ratectl_node_init() calls missed in r211314. 2010-08-21 11:06:21 +00:00
netatalk Create a custom branch where I will be able to do the merge. 2010-03-19 00:19:55 +00:00
netgraph Fix typo 2010-08-02 22:26:08 +00:00
netinet o Some programs could send broadcast/multicast traffic to ipfw 2010-08-30 09:29:51 +00:00
netinet6 Fix the the SCTP_WITH_NO_CSUM option when used in combination with 2010-08-29 18:50:30 +00:00
netipsec MFp4 @178283: 2010-05-24 16:27:47 +00:00
netipx Create a custom branch where I will be able to do the merge. 2010-03-19 00:19:55 +00:00
netnatm Create a custom branch where I will be able to do the merge. 2010-03-19 00:19:55 +00:00
netncp Switch to our preferred 2-clause BSD license. 2010-04-07 16:50:38 +00:00
netsmb Switch to our preferred 2-clause BSD license. 2010-04-07 16:50:38 +00:00
nfs Move sys/nfsclient/nfs_lock.c into sys/nfs and build it as a separate 2010-07-24 22:11:11 +00:00
nfsclient Add dedicated routines to toggle lockmgr flags such as LK_NOSHARE and 2010-08-20 19:46:50 +00:00
nfsserver - When VFS_VGET() is not supported, switch to VOP_LOOKUP(). 2010-08-26 23:41:40 +00:00
nlm Create a custom branch where I will be able to do the merge. 2010-03-19 00:19:55 +00:00
opencrypto Add an extra comment to the SDT probes definition. This allows us to get 2010-08-22 11:18:57 +00:00
pc98 Add MALLOC_DEBUG_MAXZONES debug malloc(9) option to use multiple uma 2010-07-28 15:36:12 +00:00
pci Remove unnecessary controller reinitialization. 2010-08-24 18:52:24 +00:00
powerpc Restructure how reset and poweroff are handled on PowerPC systems, since 2010-08-31 15:27:46 +00:00
rpc - Check the result of malloc(M_NOWAIT) in replay_alloc(). The caller 2010-08-26 23:33:04 +00:00
security Add an extra comment to the SDT probes definition. This allows us to get 2010-08-22 11:18:57 +00:00
sparc64 Skip a KASSERT which isn't appropriate when not employing page coloring. 2010-08-21 14:28:48 +00:00
sun4v Remove unused KTRACE includes. 2010-08-19 16:41:27 +00:00
sys Regen 2010-08-30 14:26:02 +00:00
teken Make ^L with cons25 and origin mode bit more sane. 2010-08-09 18:07:15 +00:00
tools Add an extra comment to the SDT probes definition. This allows us to get 2010-08-22 11:18:57 +00:00
ufs Add dedicated routines to toggle lockmgr flags such as LK_NOSHARE and 2010-08-20 19:46:50 +00:00
vm The realloc case for memguard(9) will copy too many bytes when 2010-08-31 16:57:58 +00:00
x86 When DTrace is enabled, make sure we don't overwrite the IDT_DTRACE_RET 2010-08-30 18:12:21 +00:00
xdr Create a custom branch where I will be able to do the merge. 2010-03-19 00:19:55 +00:00
xen Create a custom branch where I will be able to do the merge. 2010-03-19 00:19:55 +00:00
Makefile Create a custom branch where I will be able to do the merge. 2010-03-19 00:19:55 +00:00