On 1/16/2017 2:47 PM, Shirley Avishour wrote: > Hi, > As I wrote the kernel thread runs on a dedicated lcore. > running top while my application is running I see kni_single and the cpu > usage is really low... > Is there any rate limitation for transmitting to the kernel interface > (since packets are being copied in the kernel).
Yes, kind of, kernel thread sleeps periodically, with a value defined by KNI_KTHREAD_RESCHEDULE_INTERVAL. You can try tweaking this value, if you want thread do more work, less sleep J Also KNI_RX_LOOP_NUM can be updated for same purpose. > > > On Mon, Jan 16, 2017 at 4:42 PM, Ferruh Yigit <ferruh.yi...@intel.com > <mailto:ferruh.yi...@intel.com>> wrote: > > On 1/16/2017 12:20 PM, Shirley Avishour wrote: > > 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 > > 2) 2 packet processing threads (for load balancing) > > 3) kni thread (which also runs on a separate core). > > This is kernel thread, right? Is it bind to any specific core? > Is it possible that this thread shares the core with 2nd processing > thread when enabled? > > > > > the rx thread receives packets and clones them and transmit a copy > to the > > kni and the other packet is sent to the packet processing unit > (hashing > > over 2 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! > > > >