Hi, I have an application over dpdk which is consisted of the following threads each running on a separate core: 1) rx thread which listens on in a poll mode for traffic (listening on an ixgbe interface). 2) 2 packet processing threads (for load balancing) each listening on a ring for traffic from rx thread. 3) kni thread (which also runs on a separate core) - used to record the received traffic using tcpdump on the kernel interface.
the rx thread receives packets, clones them (using indirect buffer) and transmit a copy to the kni and the other copy is sent to the packet processing unit (hashing over 2 packet processing threads). the receive traffic rate is 100Mbps. When working with single packet processing thread I am able to get all the 100Mbps towards the kni with no drops. but when I activate my application with 2 packet processing threads I start facing drops towards the kni. the way I see it the only difference now is that I have another threads which handles an mbuf and frees it once processing is completed. Can anyone assist with this case please? Thanks!
