On 1/17/2017 12:34 PM, Shirley Avishour wrote: > Hi, > can the KNI_KTHREAD_RESCHEDULE_INTERVAL decrease to lower values than 5 > usecs?? is it effective at all?
You are right, it may not be since metric is usecs, and usecs_to_jiffies() most probably will give same value for 5 and lower. Removing that sleep completely (CONFIG_RTE_KNI_PREEMPT_DEFAULT=n) helps a little. > and what is the purpose of KNI_RX_LOOP_NUM? I am not sure I understand > what it does and what should I do with it to improve the performance. Increasing the loop number, also increases the work/sleep ratio, and increasing the performance a little. > > thanks! > > On Mon, Jan 16, 2017 at 5:43 PM, Shirley Avishour > <shir...@imvisiontech.com <mailto:shir...@imvisiontech.com>> wrote: > > Hi, > KNI_KTHREAD_RESCHEDULE_INTERVAL is currently set to 5usec. how > should I tweak this value to get better performance? > and can you explain the use of KNI_RX_LOOP_NUM and what can I > possibly modify it to ? > > Thanks! > > > On Mon, Jan 16, 2017 at 4:55 PM, Ferruh Yigit > <ferruh.yi...@intel.com <mailto:ferruh.yi...@intel.com>> wrote: > > 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> > > <mailto: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! > > > > > > > > > >