[dpdk-dev] [PATCH v2] ixgbe: remove vector pmd burst size restriction

Liang, Cunming cunming.liang at intel.com
Tue Aug 4 13:15:28 CEST 2015


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.


More information about the dev mailing list