Hi Zoltan, > > } 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, > > + dev->data->port_id); > > Ok, it looks better, will take it.
[...] > > 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.