[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