svn commit: r207761 - in head/sys: dev/bce dev/mxge sys

Fabien Thomas fabient at FreeBSD.org
Fri May 7 22:09:18 UTC 2010


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;
 


More information about the svn-src-head mailing list