Re: [PATCH v2] ixgbe: remove vector pmd burst size restriction
flat view
From: Liang, Cunming <hidden>
Date: 2015-08-04 11:15:58
Hi Zoltan,
quoted
} else if (adapter->rx_vec_allowed) { PMD_INIT_LOG(DEBUG, "Vector rx enabled, please make sure RX " - "burst size no less than 32."); + "burst size no less than " + "RTE_IXGBE_DESCS_PER_LOOP(=4) (port=%d).",I think you should write in this line: "%d (port=%d)", RTE_IXGBE_DESCS_PER_LOOP,quoted
+ dev->data->port_id);
Ok, it looks better, will take it. [...]
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[RTE_IXGBE_MAX_RX_BURST] = {0}; /* get some new buffers */ uint16_t nb_bufs = _recv_raw_pkts_vec(rxq, rx_pkts, nb_pkts,I don't know if it actually matters from performance point of view, but you check the whole split_flags array, even if you received only 4 packets. Though the overhead of the a for loop might be bigger.
v2 here just roll back the change. The size of array is constant. It won't loop much, always compare 4 times 'split_fl64[]==0'. As you said, I ever sent another variable aplit_flags with loop, only very tiny performance difference. As the patch is not trying to improve the performance here, any improvement I propose to make it in another patch.