Thread (18 messages) 18 messages, 4 authors, 2015-09-09

Re: [PATCH v1] ixgbe: remove vector pmd burst size restriction

flat view

From: Liang, Cunming <hidden>
Date: 2015-08-03 02:40:17

Hi, 

[...]
quoted
diff --git a/drivers/net/ixgbe/ixgbe_rxtx.c b/drivers/net/ixgbe/ixgbe_rxtx.c
index 3f808b3..dbdb761 100644
--- a/drivers/net/ixgbe/ixgbe_rxtx.c
+++ b/drivers/net/ixgbe/ixgbe_rxtx.c
@@ -4008,7 +4008,8 @@ ixgbe_set_rx_function(struct rte_eth_dev *dev)
  	 */
  	} else if (adapter->rx_vec_allowed) {
  		PMD_INIT_LOG(DEBUG, "Vector rx enabled, please make sure
RX "
quoted
-				   "burst size no less than 32.");
+				    "burst size no less than 4 (port=%d).",
+			     dev->data->port_id);
I think it would be better to use RTE_IXGBE_DESCS_PER_LOOP instead of a
constant 4.
quoted
[...]
quoted
  /*
- * vPMD receive routine, now only accept (nb_pkts ==
RTE_IXGBE_VPMD_RX_BURST)
quoted
- * in one loop
+ * vPMD raw receive routine
I would keep some warning there, like "(if nb_pkts <
RTE_IXGBE_DESCS_PER_LOOP, won't receive anything)"
quoted
   *
   * Notice:
- * - nb_pkts < RTE_IXGBE_VPMD_RX_BURST, just return no packet
- * - nb_pkts > RTE_IXGBE_VPMD_RX_BURST, only scan
RTE_IXGBE_VPMD_RX_BURST
quoted
- *   numbers of DD bit
+ * - floor align nb_pkts to a RTE_IXGBE_DESC_PER_LOOP power-of-two
+ * - 'nb_pkts < 4' causes 0 packet receiving
Again, RTE_IXGBE_DESCS_PER_LOOP would be better than 4
[...]
quoted
  uint16_t
  ixgbe_recv_scattered_pkts_vec(void *rx_queue, struct rte_mbuf **rx_pkts,
  		uint16_t nb_pkts)
  {
  	struct ixgbe_rx_queue *rxq = rx_queue;
-	uint8_t split_flags[RTE_IXGBE_VPMD_RX_BURST] = {0};
+	uint8_t split_flags[nb_pkts];
+
+	memset(split_flags, 0, nb_pkts);

  	/* get some new buffers */
  	uint16_t nb_bufs = _recv_raw_pkts_vec(rxq, rx_pkts, nb_pkts,
After this _recv_raw_pkts_vec it checks 32 bytes in split_flags (4x8
bytes), that can overrun or miss some flags.
Btw. Bruce just fixed that part in "ixgbe: fix check for split packets"
Thanks for all these valuable comments, will keep the max burst size 32.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help