[dpdk-dev] ixgbe TX function selection

Wu, Jingjing jingjing.wu at intel.com
Thu Mar 10 08:51:18 CET 2016


Hi, Zoltan

> -----Original Message-----
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Zoltan Kiss
> Sent: Wednesday, March 2, 2016 3:19 AM
> To: dev at dpdk.org
> Subject: [dpdk-dev] ixgbe TX function selection
> 
> Hi,
> 
> I've noticed that ixgbe_set_tx_function() selects the non-SG function
> even if (dev->data->scattered_rx == 1). That seems a bit dangerous, as
> you can turn that on inadvertently when you don't set max_rx_pkt_len and
> buffer size in certain ways. I've learnt it in the hard way, as my
> segmented packets were leaking memory on the TX path, which doesn't
> cries if you send out segmented packets.
> How should this case be treated? Assert on the non-SG TX side for the
> 'next' pointer? Or turning on SG if RX has it? It doesn't seem to be a
> solid way as other interfaces still can have SG turned on.
> 

If you look into the ixgbe_set_tx_function, you will find tx function
selection is decided by the tx_flags on queue configure, which is
passed by rte_eth_txconf. So even you set dev->data->scattered_rx to 1,
if the tx_flags is ETH_TXQ_FLAGS_NOMULTSEGS, ixgbe_xmit_pkts_simple is
still selected as tx function. So, you'd better to set tx_flags=0, and have a try.

> Regards,
> 
> Zoltan


More information about the dev mailing list