Date: Thu, 8 Dec 2005 16:11:45 +0000 (UTC) From: Gleb Smirnoff <glebius@FreeBSD.org> To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/dev/bge if_bge.c if_bgereg.h Message-ID: <200512081611.jB8GBjkG092513@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
glebius 2005-12-08 16:11:45 UTC FreeBSD src repository Modified files: sys/dev/bge if_bge.c if_bgereg.h Log: 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. Revision Changes Path 1.103 +49 -233 src/sys/dev/bge/if_bge.c 1.39 +26 -15 src/sys/dev/bge/if_bgereg.h
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200512081611.jB8GBjkG092513>