[dpdk-dev] drops while transmitting to the kni using rte_kni_tx_burst()

Shirley Avishour shirley at imvisiontech.com
Tue Jan 17 13:34:19 CET 2017


Hi,
can the KNI_KTHREAD_RESCHEDULE_INTERVAL decrease to lower values than 5
usecs?? is it effective at all?
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.

thanks!

On Mon, Jan 16, 2017 at 5:43 PM, Shirley Avishour <shirley at 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.yigit at 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.yigit at intel.com
>> > <mailto:ferruh.yigit at 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!
>> >     >
>> >
>> >
>>
>>
>


More information about the dev mailing list