diff options
author | glebius <glebius@FreeBSD.org> | 2005-12-08 16:11:45 +0000 |
---|---|---|
committer | glebius <glebius@FreeBSD.org> | 2005-12-08 16:11:45 +0000 |
commit | 32bd4e565a3a4b0c4830285475d1acb39946ff70 (patch) | |
tree | fa5e6f16fea77fd4115ced5d9203bfa853cab714 /bin/sh | |
parent | d6ef4fe5b252612d44020eecf6e3feb9b8233dd5 (diff) | |
download | FreeBSD-src-32bd4e565a3a4b0c4830285475d1acb39946ff70.zip FreeBSD-src-32bd4e565a3a4b0c4830285475d1acb39946ff70.tar.gz |
A big rewrite of receive Jumbo frame handling. Remove the local Jumbo
cluster allocator, that wasn't MPSAFE. Instead, utilize our new generic
UMA jumbo cluster allocator. Since UMA gives us a 9k piece that is contigous
in virtual memory, but isn't contigous in physical memory we need to handle
a few segments. To deal with this we utilize Tigon chip feature - extended
RX descriptors, that can handle up to four DMA segments for one frame.
Details:
o Remove bge_alloc_jumbo_mem(), bge_free_jumbo_mem(),
bge_jalloc(), bge_jfree() functions.
o Remove SLIST heads, bge_jumbo_tag, bge_jumbo_map from softc.
o Use extended RX BDs for Jumbo receive producer ring, and
initialize it appropriately.
o New bge_newbuf_jumbo():
- Allocate an mbuf with Jumbo cluster with help of m_cljget().
- Load the cluster for DMA with help of bus_dmamap_load_mbuf_sg().
- Assert that we got 3 segments in the DMA mapping.
- Fill in these 3 segments into the extended RX descriptor.
Diffstat (limited to 'bin/sh')
0 files changed, 0 insertions, 0 deletions