Hi,
     My user-space TCP/IP stack  works fine on DPDK 17.02, now I upgrade it to 
18.02. And then I use  wrk http benchmark to test my stack, it work well fine, 
but after a while, it couldn't send packet.  I debug with gdb and find the 
rte_eth_tx_burst always return 0, which means there is no available transmit 
descriptor. And then I enable DPDK debug mode, the ixgbe_xmit_pkts has been 
called to send packets (My NIC is Intel 82599ES 10G) and it called 
ixgbe_xmit_cleanup to recycle  used transmit descriptor, but ixgbe_xmit_cleanup 
always return -1. The relevant code is blew.

/* Check to make sure the last descriptor to clean is done */
desc_to_clean_to = sw_ring[desc_to_clean_to].last_id;
status = txr[desc_to_clean_to].wb.status;
if (!(status & rte_cpu_to_le_32(IXGBE_TXD_STAT_DD))) {
 PMD_TX_FREE_LOG(DEBUG,
   "TX descriptor %4u is not done"
   "(port=%d queue=%d)",
   desc_to_clean_to,
   txq->port_id, txq->queue_id);
 /* Failed to clean any descriptors, better luck next time */
 return -(1);
}

I'm stuck here, and wonder how DPDK upgrade brings up this issue. Btw, there 
was a similar mail which encountered the same issue, 
http://mails.dpdk.org/archives/dev/2017-August/073240.html, but I find no final 
solution for it.

Thanks a lot for your time, and dying for your reply!

Huiyou

Reply via email to