svn commit: r347317 - head/sys/dev/mlx5/mlx5_en

Hans Petter Selasky hselasky at FreeBSD.org
Wed May 8 11:06:43 UTC 2019


Author: hselasky
Date: Wed May  8 11:06:42 2019
New Revision: 347317
URL: https://svnweb.freebsd.org/changeset/base/347317

Log:
  Remove non-functional MLX5E_MAX_RX_SEGS macro in mlx5en(4).
  
  MFC after:	3 days
  Sponsored by:	Mellanox Technologies

Modified:
  head/sys/dev/mlx5/mlx5_en/en.h
  head/sys/dev/mlx5/mlx5_en/mlx5_en_main.c
  head/sys/dev/mlx5/mlx5_en/mlx5_en_rx.c

Modified: head/sys/dev/mlx5/mlx5_en/en.h
==============================================================================
--- head/sys/dev/mlx5/mlx5_en/en.h	Wed May  8 11:06:22 2019	(r347316)
+++ head/sys/dev/mlx5/mlx5_en/en.h	Wed May  8 11:06:42 2019	(r347317)
@@ -89,19 +89,13 @@
 
 #define	MLX5E_MAX_BUSDMA_RX_SEGS 15
 
-#define	MLX5E_MAX_RX_SEGS 7
-
 #ifndef MLX5E_MAX_RX_BYTES
 #define	MLX5E_MAX_RX_BYTES MCLBYTES
 #endif
 
-#if (MLX5E_MAX_RX_SEGS == 1)
-/* FreeBSD HW LRO is limited by 16KB - the size of max mbuf */
-#define	MLX5E_PARAMS_DEFAULT_LRO_WQE_SZ                 MJUM16BYTES
-#else
 #define	MLX5E_PARAMS_DEFAULT_LRO_WQE_SZ \
-    MIN(65535, MLX5E_MAX_RX_SEGS * MLX5E_MAX_RX_BYTES)
-#endif
+    MIN(65535, 7 * MLX5E_MAX_RX_BYTES)
+
 #define	MLX5E_DIM_DEFAULT_PROFILE 3
 #define	MLX5E_DIM_MAX_RX_CQ_MODERATION_PKTS_WITH_LRO	16
 #define	MLX5E_PARAMS_DEFAULT_RX_CQ_MODERATION_USEC      0x10

Modified: head/sys/dev/mlx5/mlx5_en/mlx5_en_main.c
==============================================================================
--- head/sys/dev/mlx5/mlx5_en/mlx5_en_main.c	Wed May  8 11:06:22 2019	(r347316)
+++ head/sys/dev/mlx5/mlx5_en/mlx5_en_main.c	Wed May  8 11:06:42 2019	(r347317)
@@ -1253,11 +1253,7 @@ mlx5e_create_rq(struct mlx5e_channel *c,
 	rq->mbuf = malloc(wq_sz * sizeof(rq->mbuf[0]), M_MLX5EN, M_WAITOK | M_ZERO);
 	for (i = 0; i != wq_sz; i++) {
 		struct mlx5e_rx_wqe *wqe = mlx5_wq_ll_get_wqe(&rq->wq, i);
-#if (MLX5E_MAX_RX_SEGS == 1)
-		uint32_t byte_count = rq->wqe_sz - MLX5E_NET_IP_ALIGN;
-#else
 		int j;
-#endif
 
 		err = -bus_dmamap_create(rq->dma_tag, 0, &rq->mbuf[i].dma_map);
 		if (err != 0) {
@@ -1267,13 +1263,8 @@ mlx5e_create_rq(struct mlx5e_channel *c,
 		}
 
 		/* set value for constant fields */
-#if (MLX5E_MAX_RX_SEGS == 1)
-		wqe->data[0].lkey = c->mkey_be;
-		wqe->data[0].byte_count = cpu_to_be32(byte_count | MLX5_HW_START_PADDING);
-#else
 		for (j = 0; j < rq->nsegs; j++)
 			wqe->data[j].lkey = c->mkey_be;
-#endif
 	}
 
 	INIT_WORK(&rq->dim.work, mlx5e_dim_work);

Modified: head/sys/dev/mlx5/mlx5_en/mlx5_en_rx.c
==============================================================================
--- head/sys/dev/mlx5/mlx5_en/mlx5_en_rx.c	Wed May  8 11:06:22 2019	(r347316)
+++ head/sys/dev/mlx5/mlx5_en/mlx5_en_rx.c	Wed May  8 11:06:42 2019	(r347317)
@@ -36,20 +36,12 @@ mlx5e_alloc_rx_wqe(struct mlx5e_rq *rq,
 	struct mbuf *mb;
 	int nsegs;
 	int err;
-#if (MLX5E_MAX_RX_SEGS != 1)
 	struct mbuf *mb_head;
 	int i;
-#endif
+
 	if (rq->mbuf[ix].mbuf != NULL)
 		return (0);
 
-#if (MLX5E_MAX_RX_SEGS == 1)
-	mb = m_getjcl(M_NOWAIT, MT_DATA, M_PKTHDR, rq->wqe_sz);
-	if (unlikely(!mb))
-		return (-ENOMEM);
-
-	mb->m_pkthdr.len = mb->m_len = rq->wqe_sz;
-#else
 	mb_head = mb = m_getjcl(M_NOWAIT, MT_DATA, M_PKTHDR,
 	    MLX5E_MAX_RX_BYTES);
 	if (unlikely(mb == NULL))
@@ -72,7 +64,7 @@ mlx5e_alloc_rx_wqe(struct mlx5e_rq *rq,
 	}
 	/* rewind to first mbuf in chain */
 	mb = mb_head;
-#endif
+
 	/* get IP header aligned */
 	m_adj(mb, MLX5E_NET_IP_ALIGN);
 
@@ -85,10 +77,7 @@ mlx5e_alloc_rx_wqe(struct mlx5e_rq *rq,
 		err = -ENOMEM;
 		goto err_free_mbuf;
 	}
-#if (MLX5E_MAX_RX_SEGS == 1)
 	wqe->data[0].addr = cpu_to_be64(segs[0].ds_addr);
-#else
-	wqe->data[0].addr = cpu_to_be64(segs[0].ds_addr);
 	wqe->data[0].byte_count = cpu_to_be32(segs[0].ds_len |
 	    MLX5_HW_START_PADDING);
 	for (i = 1; i != nsegs; i++) {
@@ -99,7 +88,6 @@ mlx5e_alloc_rx_wqe(struct mlx5e_rq *rq,
 		wqe->data[i].addr = 0;
 		wqe->data[i].byte_count = 0;
 	}
-#endif
 
 	rq->mbuf[ix].mbuf = mb;
 	rq->mbuf[ix].data = mb->m_data;
@@ -257,9 +245,7 @@ mlx5e_build_rx_mbuf(struct mlx5_cqe64 *cqe,
 {
 	struct ifnet *ifp = rq->ifp;
 	struct mlx5e_channel *c;
-#if (MLX5E_MAX_RX_SEGS != 1)
 	struct mbuf *mb_head;
-#endif
 	int lro_num_seg;	/* HW LRO session aggregated packets counter */
 	uint64_t tstmp;
 
@@ -270,9 +256,6 @@ mlx5e_build_rx_mbuf(struct mlx5_cqe64 *cqe,
 		rq->stats.lro_bytes += cqe_bcnt;
 	}
 
-#if (MLX5E_MAX_RX_SEGS == 1)
-	mb->m_pkthdr.len = mb->m_len = cqe_bcnt;
-#else
 	mb->m_pkthdr.len = cqe_bcnt;
 	for (mb_head = mb; mb != NULL; mb = mb->m_next) {
 		if (mb->m_len > cqe_bcnt)
@@ -289,7 +272,7 @@ mlx5e_build_rx_mbuf(struct mlx5_cqe64 *cqe,
 	}
 	/* rewind to first mbuf in chain */
 	mb = mb_head;
-#endif
+
 	/* check if a Toeplitz hash was computed */
 	if (cqe->rss_hash_type != 0) {
 		mb->m_pkthdr.flowid = be32_to_cpu(cqe->rss_hash_result);
@@ -508,10 +491,8 @@ mlx5e_poll_rx_cq(struct mlx5e_rq *rq, int budget)
 		}
 		if ((MHLEN - MLX5E_NET_IP_ALIGN) >= byte_cnt &&
 		    (mb = m_gethdr(M_NOWAIT, MT_DATA)) != NULL) {
-#if (MLX5E_MAX_RX_SEGS != 1)
 			/* set maximum mbuf length */
 			mb->m_len = MHLEN - MLX5E_NET_IP_ALIGN;
-#endif
 			/* get IP header aligned */
 			mb->m_data += MLX5E_NET_IP_ALIGN;
 


More information about the svn-src-all mailing list