hi all, Tried to debug this further and found that there is a skip in the rxdIdx count as seen in the logs below. And 'rxdIdx' index is incremented by the NIC itself. Any ideas on why the 'rxdIdx' count (say 5 as seen below) may be missing ? Any suggestions to try to find the root cause of missing rx index ?
PMD: vmxnet3_recv_pkts(): rxd idx: 0 ring idx: 0. PMD: vmxnet3_recv_pkts(): rxd idx: 1 ring idx: 0. PMD: vmxnet3_recv_pkts(): rxd idx: 2 ring idx: 0. PMD: vmxnet3_recv_pkts(): rxd idx: 3 ring idx: 0. PMD: vmxnet3_recv_pkts(): *rxd idx: 4* ring idx: 0. PMD: vmxnet3_recv_pkts(): *rxd idx: 6* ring idx: 0. PMD: vmxnet3_recv_pkts(): rxd idx: 7 ring idx: 0. thanks, gaurav On Thu, Sep 26, 2019 at 1:25 PM Gaurav Bansal <[email protected]> wrote: > Thanks Stephen for the reply. I am planning to try that but that will > require some major changes & lot more time, as this library is tightly > integrated with our code base. Meanwhile please let me know if there is > anything that can be tried on 16.04 itself. > thanks, > gaurav > > On Thu, Sep 26, 2019 at 10:46 AM Stephen Hemminger < > [email protected]> wrote: > >> On Thu, 26 Sep 2019 10:45:03 +0530 >> Gaurav Bansal <[email protected]> wrote: >> >> > any suggestions here ? >> > >> > On Wed, Sep 25, 2019 at 4:09 PM Gaurav Bansal <[email protected]> >> wrote: >> > >> > > Hi all, >> > > I am using dpdk 16.04 library to process the packets on a vmware vm >> (say >> > > vm1). The traffic is sent through a client machine using apache >> bench. I am >> > > observing an issue when the number of packets reaching the vmxnet3 >> > > interface reaches the descriptor ring size (set to 2048). Till 2048 >> all the >> > > packets correctly reach the 'vmxnet3_recv_pkts' function. >> > > >> > > But as the number of packets received reaches 2048, i start seeing >> some >> > > retransmissions on the client side (as shown by tcpdump on client >> side). >> > > Then i captured the packets on the esx host destined to vm1 and it >> shows >> > > that all the original packets as well as the corresponding >> retransmissions >> > > are reaching vm1. But somehow these packets fail to reach till >> > > 'vmxnet3_recv_pkts' function (this was found by putting the >> breakpoint in >> > > 'vmxnet3_recv_pkts' function and dumping the packet contents, which >> showed >> > > that some packets don't reach here). >> > > >> > > Now 'vmxnet3_recv_pkts' is the first function which reads the packets >> from >> > > the descriptor ring and as the packets are not reaching till here, i >> am not >> > > sure on how to debug this further. Possibly some issues related to >> the ring >> > > initialization.... I enabled the init & RX logs for vmxnet3, but i >> don't >> > > see any error logs as well. I also tried looking at rxq stats and it >> shows >> > > 0 all the time : >> > > (gdb) p rxq->stats >> > > $1 = {drop_total = 0, drop_err = 0, drop_fcs = 0, >> rx_buf_alloc_failure = 0} >> > > >> > > Can anyone please provide some clues on how to debug this further ? >> Are >> > > there any known issues related to this which have been fixed post >> 16.04 >> > > version ? >> > > thanks, >> > > gaurav >> > > >> >> Try a newer version of DPDK first. >> >
