Author: fabient
Date: Fri May  7 22:09:17 2010
New Revision: 207761
URL: http://svn.freebsd.org/changeset/base/207761

Log:
  Add a fastpath to allocate from packet zone when using m_getjcl.
  This will add support for packet zone for at least igb and ixgbe
  and will avoid to check for that in bce and mxge.
  
  MFC after: 1 week

Modified:
  head/sys/dev/bce/if_bce.c
  head/sys/dev/mxge/if_mxge.c
  head/sys/sys/mbuf.h

Modified: head/sys/dev/bce/if_bce.c
==============================================================================
--- head/sys/dev/bce/if_bce.c   Fri May  7 21:48:51 2010        (r207760)
+++ head/sys/dev/bce/if_bce.c   Fri May  7 22:09:17 2010        (r207761)
@@ -5059,11 +5059,8 @@ bce_get_rx_buf(struct bce_softc *sc, str
 #ifdef BCE_JUMBO_HDRSPLIT
                MGETHDR(m_new, M_DONTWAIT, MT_DATA);
 #else
-               if (sc->rx_bd_mbuf_alloc_size <= MCLBYTES)
-                       m_new = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR);
-               else
-                       m_new = m_getjcl(M_DONTWAIT, MT_DATA, M_PKTHDR,
-                           sc->rx_bd_mbuf_alloc_size);
+               m_new = m_getjcl(M_DONTWAIT, MT_DATA, M_PKTHDR,
+                   sc->rx_bd_mbuf_alloc_size);
 #endif
 
                if (m_new == NULL) {

Modified: head/sys/dev/mxge/if_mxge.c
==============================================================================
--- head/sys/dev/mxge/if_mxge.c Fri May  7 21:48:51 2010        (r207760)
+++ head/sys/dev/mxge/if_mxge.c Fri May  7 22:09:17 2010        (r207761)
@@ -2400,10 +2400,7 @@ mxge_get_buf_big(struct mxge_slice_state
        mxge_rx_ring_t *rx = &ss->rx_big;
        int cnt, err, i;
 
-       if (rx->cl_size == MCLBYTES)
-               m = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR);
-       else
-               m = m_getjcl(M_DONTWAIT, MT_DATA, M_PKTHDR, rx->cl_size);
+       m = m_getjcl(M_DONTWAIT, MT_DATA, M_PKTHDR, rx->cl_size);
        if (m == NULL) {
                rx->alloc_fail++;
                err = ENOBUFS;

Modified: head/sys/sys/mbuf.h
==============================================================================
--- head/sys/sys/mbuf.h Fri May  7 21:48:51 2010        (r207760)
+++ head/sys/sys/mbuf.h Fri May  7 22:09:17 2010        (r207761)
@@ -523,6 +523,9 @@ m_getjcl(int how, short type, int flags,
        struct mbuf *m, *n;
        uma_zone_t zone;
 
+       if (size == MCLBYTES)
+               return m_getcl(how, type, flags);
+
        args.flags = flags;
        args.type = type;
 
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to