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

2017-01-16 Thread Shirley Avishour
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).

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!


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

2017-01-16 Thread Shirley Avishour
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).


On Mon, Jan 16, 2017 at 4:42 PM, Ferruh Yigit 
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!
> >
>
>


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

2017-01-16 Thread Shirley Avishour
I am currently using the kernel interface for recording the received
traffic by duplicating the received packets and sending a copy to the kni
(and performing pcap_open_live on the kni).
my goal rate is around 500Mbps. is it possible to achieve it via the kni ??


On Mon, Jan 16, 2017 at 4:55 PM, Ferruh Yigit 
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  > <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!
> > >
> >
> >
>
>


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

2017-01-16 Thread Shirley Avishour
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 
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  > <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!
> > >
> >
> >
>
>


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

2017-01-17 Thread Shirley Avishour
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 
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 
> 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 > > <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!
>> > >
>> >
>> >
>>
>>
>


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

2017-01-18 Thread Shirley Avishour
Hi,
thanks for the quick answer.
I ran the same test with one kni port
with the following configuration:

sudo insmod rte_kni.ko lo_mode=lo_mode_fifo_skb

sudo ./kni -c 0xf -n 4 -- -P p 0x1 --config="(0,1,2,3)"

and transmitted towards the single port traffic with rate of 300Mbps.
as you can see below I have packet drops:
what is the difference between what you tested and what I see below?
is there some other configuration or adjustments to be done on the kni that
I am missing?


==  ==      


**KNI example application statistics**
==  ==      

 PortLcore(RX/TX)rx_packetsrx_droppedtx_packets
tx_dropped
--  --      

  0  1/ 2 106059534 21978 106058868
0
==  ==      


**KNI example application statistics**
==  ==      

 PortLcore(RX/TX)rx_packetsrx_droppedtx_packets
tx_dropped
--  --      

  0  1/ 2 106137710 21995 106137054
0
==  ==      


**KNI example application statistics**
==  ==      

 PortLcore(RX/TX)rx_packetsrx_droppedtx_packets
tx_dropped
--  --      

  0  1/ 2 106217479 21995 106216603
0
==  ==      


**KNI example application statistics**
==  ==      

 PortLcore(RX/TX)rx_packetsrx_droppedtx_packets
tx_dropped
--  --      

  0  1/ 2 116349769 24150 116349796
0
==  ==      


**KNI example application statistics**
==  ==      

 PortLcore(RX/TX)rx_packetsrx_droppedtx_packets
tx_dropped
--  --      

  0  1/ 2 116349769 24150 116349796
0
==  ==      

^[[A
**KNI example application statistics**
==  ==      

 PortLcore(RX/TX)rx_packetsrx_droppedtx_packets
tx_dropped
--  --      

  0  1/ 2 117954991 24530 117954361
0
==  ==      



On Tue, Jan 17, 2017 at 7:57 PM, Ferruh Yigit 
wrote:

> On 1/17/2017 5:46 PM, Ferruh Yigit wrote:
> > On 1/16/2017 2:58 PM, Shirley Avishour wrote:
> >> I am currently using the kernel interface for recording the received
> >> traffic by duplicating the received packets and sending a copy to the
> >> kni (and performing pcap_open_live on the kni).
> >> my goal rate is around 500Mbps. is it possible to achieve it via the
> kni ??
> >
> > According quick experiment,
> > - with kni module lo_mode_fifo_skb (which send all received packets to
> > tx, but allocating and copying data to skb to be more realistic)
> > - single kernel thread
> > - kernel thread bind to a core
> > - using kni sample app
> > - With small packets
> >
> > Best numbers get when rx,tx and kernel cores are in same socket with the
> > NIC, it is ~1.7Mpps (million packet per second)
> >
> > When KNI_RX_LOOP_NUM increased to 1, it becomes ~1.9Mpps.
> >
>
> And again, very quick test, between two KNI ports, with kni sample app,
> using iperf default values, gives ~3 Gbits/sec
>
> >>
> >>
> >> On Mon, Jan 16, 2017 at 4:55 PM, Ferruh Yigit  >> <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 periodi

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

2017-01-23 Thread Shirley Avishour
Hi Jason,
You are right but I've tried to work in multiple mode as well and it did
not change the result.
I hope this issue will be solved.

Thanks,
Shirley.

On Fri, Jan 20, 2017 at 9:48 PM, Jason Kwon  wrote:

> Sorry to hijack the thread, but I was wondering, is the binding of the KNI
> kernel thread only applicable in multiple kthread mode?  Does it apply in
> single kernel thread mode?  Looking at the 16.07.2 source, I saw the
> following:
>
> /**
>  * Create a new kernel thread for multiple mode, set its core
> affinity,
>  * and finally wake it up.
>  */
> if (multiple_kthread_on) {
> kni->pthread = kthread_create(kni_thread_multiple,
>   (void *)kni,
>   "kni_%s", kni->name);
> if (IS_ERR(kni->pthread)) {
> kni_dev_remove(kni);
> return -ECANCELED;
> }
> if (dev_info.force_bind)
> kthread_bind(kni->pthread, kni->core_id);
> wake_up_process(kni->pthread);
> }
>
> Thanks,
>
> Jason
>
> On Mon, Jan 16, 2017 at 6:42 AM, Ferruh Yigit 
> 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!
>> >
>>
>>
>


[dpdk-dev] tcpreplay is stuck for a while when running with kni_thread

2017-05-10 Thread Shirley Avishour
Hi,
When calling tcpreplay for any device and not necessarily the kni it can
take a few minutes until the packet transmission starts. this occurs only
when the kni_thread is running.
I am running on Centos with kernel version 3.10 and libpcap version 1.5.3
I tried debugging the tcpreplay and noticed that the function is stuck on
pcap_finalldevices().
this problem occurs both with RTE_KNI_PREEMPT_DEFAULT=1 and 0 but when
setting to 0 it takes less time for the pcap_finalldevices() to complete.
there are enough cores so the issue is not related to cpu.
Is it a known issue? is there any workaround?

Thanks,
Shirley.


[dpdk-dev] running dpdk application on the same machine with other none dpdk application

2019-01-29 Thread Shirley Avishour
Hi,
We are trying to run a dpdk based application one the same machine with
other java based applications.
In order to do that we isolated the dpdk application cores and disabled
hyperthreading for those cores.
But sporadically we encounter misses over the interface.
We are running on a single socket cpu with 44 hyperthreaded cores.
we are using 5 cores for the dpdk application (which is in fact 10 since
hyperthreading is disabled).
My guess is that probably GC (garbage collection) running from the kernel
and perhaps over the isolated threads causing the misses.
Is there a way to solve this issue? Is there a way to isolate cores for
kernel processes/threads?
Thanks in advance,
Shirley.


Re: [dpdk-dev] running dpdk application on the same machine with other none dpdk application

2019-01-29 Thread Shirley Avishour
Hi Rami,
In order to isolate the required core we add isolcpus to the grub:
GRUB_CMDLINE_LINUX_DEFAULT="default_hugepagesz=2M hugepagesz=1G hugepages=8
isolcpus=1-5"

To disable hyperthreading for these cores we add command to the rcl.local:
(which in fact disables the peer logical core)
echo 0 > /sys/devices/system/cpu/cpu23/online
echo 0 > /sys/devices/system/cpu/cpu24/online
echo 0 > /sys/devices/system/cpu/cpu25/online
echo 0 > /sys/devices/system/cpu/cpu26/online
echo 0 > /sys/devices/system/cpu/cpu27/online

our dpdk application runs on cores 1-5: --lcores='(0,4-6)@5,1@1,2@2,3@3,7@4'

But cpu isolation does not prevent from kernel processes/threads from
running on isolated cpus.
Running java based applications on the same server with a dpdk based
application has an impact on the dpdk performance.
Probably since the JVM generates kernel based processes. It can be either
GC (garbage collection) or other operations.
We are looking for a way to prevent these kernel threads from using the
isolated cores.

Thanks,
Shirley.




On Wed, Jan 30, 2019 at 8:09 AM Rami Rosen  wrote:

> Hi, Shirley
>
> >In order to do that we isolated the dpdk application cores and disabled
> hyperthreading for those cores.
> >we are using 5 cores for the dpdk application (which is in fact 10 since
> hyperthreading is disabled).
>
> Short clarification question: did you do it with EAL paramater ?
>
> Was it with
> -l CORELIST / --lcores COREMAP EAL parameter ?
>
> Did you try also the isolcpus Linux kernel parameter in order to isolate
> cores from the general Linux scheduler?
>
> Regards,
> Rami Rosen
>
>
> On Tue, Jan 29, 2019 at 6:32 PM Shirley Avishour 
> wrote:
>
>> Hi,
>> We are trying to run a dpdk based application one the same machine with
>> other java based applications.
>> In order to do that we isolated the dpdk application cores and disabled
>> hyperthreading for those cores.
>> But sporadically we encounter misses over the interface.
>> We are running on a single socket cpu with 44 hyperthreaded cores.
>> we are using 5 cores for the dpdk application (which is in fact 10 since
>> hyperthreading is disabled).
>> My guess is that probably GC (garbage collection) running from the kernel
>> and perhaps over the isolated threads causing the misses.
>> Is there a way to solve this issue? Is there a way to isolate cores for
>> kernel processes/threads?
>> Thanks in advance,
>> Shirley.
>>
>
>
> --
> regards,
> Rami Rosen
>


Re: [dpdk-dev] running dpdk application on the same machine with other none dpdk application

2019-01-29 Thread Shirley Avishour
Hi Rami,

This is the printout for cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-4.15.0-43-generic
root=UUID=6f1a210b-a30f-456d-bf16-bbb210da5666 ro default_hugepagesz=2M
hugepagesz=2M hugepages=4096 isolcpus=1-5 nohz_full=1-5 rcu_nocbs=1-5

The requires cpus are in fact isolated but jvm generate some kernel threads
as well and I'm afraid that these kernel space threads eventually use all
cores. isolcpus is not applies on kernel space threads.

Shirley.



On Wed, Jan 30, 2019 at 8:57 AM Rami Rosen  wrote:

> Hi Shirley,
> >Running java based applications on the same server with a dpdk based
> application has an impact on the dpdk performance.
> Probably since the JVM generates kernel based processes. I
>
> This is true, but as far as I know, using isolcpus should prevent these
> processes to run on the isolated cores.
>
> Just to be on the safe side: did you make sure with cat /proc/cmdline on
> the kernel you are actually running indeed
> has the "isolcpus=1-5" you added in grub ? sometimes, especially in multi
> OS hosts, adding entries in /etc/default/grub and running grub2-mkconfig is
> not enough, if you boot from a different partition.
>
> Regards,
> Rami Rosen
>
>
>


Re: [dpdk-dev] running dpdk application on the same machine with other none dpdk application

2019-01-29 Thread Shirley Avishour
Hi Rami,
Thanks for the quick reply. So in fact there is no way to tell the kernel
not to run kernel threads on specific cpus?
Even not by compiling the kernel with specific flags?
Do you know if the PF_NO_SETAFFINITY flag can help in any way?

Thanks,
Shirley.


On Wed, Jan 30, 2019 at 9:26 AM Rami Rosen  wrote:

> Hi Shirley,
>
> I think you are right, isolcpus is for userspace threads.
> ...
> "Use the isolcpus parameter on the kernel command line to isolate certain
> cores from user-space tasks."
> ...
> See:
>
> https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/performance_tuning_guide/sect-red_hat_enterprise_linux-performance_tuning_guide-cpu-configuration_suggestions
> So if there is no way to configure JVM to use specified kernel cores (and
> I am afraid there is no such way),
> I am not sure how this can be solved.
>
> Regards,
> Rami Rosen
>
>
> On Wed, Jan 30, 2019 at 9:05 AM Shirley Avishour 
> wrote:
>
>> Hi Rami,
>>
>> This is the printout for cat /proc/cmdline
>> BOOT_IMAGE=/boot/vmlinuz-4.15.0-43-generic
>> root=UUID=6f1a210b-a30f-456d-bf16-bbb210da5666 ro default_hugepagesz=2M
>> hugepagesz=2M hugepages=4096 isolcpus=1-5 nohz_full=1-5 rcu_nocbs=1-5
>>
>> The requires cpus are in fact isolated but jvm generate some kernel
>> threads as well and I'm afraid that these kernel space threads eventually
>> use all cores. isolcpus is not applies on kernel space threads.
>>
>> Shirley.
>>
>>
>>
>> On Wed, Jan 30, 2019 at 8:57 AM Rami Rosen  wrote:
>>
>>> Hi Shirley,
>>> >Running java based applications on the same server with a dpdk based
>>> application has an impact on the dpdk performance.
>>> Probably since the JVM generates kernel based processes. I
>>>
>>> This is true, but as far as I know, using isolcpus should prevent these
>>> processes to run on the isolated cores.
>>>
>>> Just to be on the safe side: did you make sure with cat /proc/cmdline on
>>> the kernel you are actually running indeed
>>> has the "isolcpus=1-5" you added in grub ? sometimes, especially in
>>> multi OS hosts, adding entries in /etc/default/grub and running 
>>> grub2-mkconfig
>>> is not enough, if you boot from a different partition.
>>>
>>> Regards,
>>> Rami Rosen
>>>
>>>
>>>
>
> --
> regards,
> Rami Rosen
>


Re: [dpdk-dev] running dpdk application on the same machine with other none dpdk application

2019-01-30 Thread Shirley Avishour
Hi Rami,
This is correct but that is because the default value of the PF_NO_SETAFFINITY
flags does not allow to set affinity to kernel threads from user space.
I was looking for a way to change the kernel and recompile it to be able to
block kernel threads from running on the cpu isolated cores. (same as user
space threads).

BR,
Shirley.



On Wed, Jan 30, 2019 at 10:18 AM Rami Rosen  wrote:

> Hi Shirley,
>
> > Do you know if the PF_NO_SETAFFINITY flag can help in any way?
>
> AFAIK, this will not work for kernel thread.
>
> For example, with 4.8.13-1 kernel:
> Display all kernel threads with
> ps aux | grep "\["n
>
> (as kernel threads are enclosed in square brackets, [ ])
> And pick one of them and try:
> taskset -pc 7 521
> pid 521's current affinity list: 0-15
> taskset: failed to set pid 521's affinity: Invalid argument
> Regards,
> Rami Rosen
>
>


Re: [dpdk-dev] running dpdk application on the same machine with other none dpdk application

2019-01-30 Thread Shirley Avishour
Perhaps by modifying the function set_cpus_allowed() which sets the kernel
threads flag with PF_NO_SETAFFINITY.
To remark it in the kernel code and to recompile the code.


On Wed, Jan 30, 2019 at 10:27 AM Shirley Avishour 
wrote:

> Hi Rami,
> This is correct but that is because the default value of the PF_NO_SETAFFINITY
> flags does not allow to set affinity to kernel threads from user space.
> I was looking for a way to change the kernel and recompile it to be able
> to block kernel threads from running on the cpu isolated cores. (same as
> user space threads).
>
> BR,
> Shirley.
>
>
>
> On Wed, Jan 30, 2019 at 10:18 AM Rami Rosen  wrote:
>
>> Hi Shirley,
>>
>> > Do you know if the PF_NO_SETAFFINITY flag can help in any way?
>>
>> AFAIK, this will not work for kernel thread.
>>
>> For example, with 4.8.13-1 kernel:
>> Display all kernel threads with
>> ps aux | grep "\["n
>>
>> (as kernel threads are enclosed in square brackets, [ ])
>> And pick one of them and try:
>> taskset -pc 7 521
>> pid 521's current affinity list: 0-15
>> taskset: failed to set pid 521's affinity: Invalid argument
>> Regards,
>> Rami Rosen
>>
>>


Re: [dpdk-dev] running dpdk application on the same machine with other none dpdk application

2019-01-30 Thread Shirley Avishour
Hi,
I will consider that.
Thanks again for your help.
Shirley.

On Wed, Jan 30, 2019 at 10:40 AM Rami Rosen  wrote:

> Hi Shirley,
>
> Hi,
> It could be that this will work, but as I assume you know -
>
> This requires providing a patched kernel to end customers, some will not
> like it, some
> will maybe not accept it
>
> - It could be that a kernel patch to the Kernel Mailing list for enabling
> such functionality (globally or per kernel thread for example)
> via a sysf entry or a kernel parameter will be accepted, though. You may
> try
>
> Regards,
> Rami Rosen
>
>
>
>


[dpdk-dev] errors while working with dpdk cuckoo hash

2017-08-21 Thread Shirley Avishour
Hi,

I am running an application over dpdk ver 16.04.
My application massively inserting and deleting from a hash table using a
key that can be very similar for many instances.
I noticed that in some cases I am unable to find an entry while I am
certain it was inserted successfully.
I wrote a test to try and reproduce the problem and I have managed to
recreate the problem.
Attached is a c file containing the test which recreates the problem.
The key and hash function/hash size which I used in the test are identical
to what I use in my application.
attached is also a file containing the printouts of the test and indication
to 2 of the problems I encountered.
Are these known issues? is there a fix for that?

Thanks,
Shirley
test iteration 0: entry_misses 0, add_entry_fail 0, entry_hits 3, entry_rm 
78000, entry_add 78000
test iteration 1: entry_misses 0, add_entry_fail 0, entry_hits 3, entry_rm 
78000, entry_add 78000

ALREADY EXISTS (VT 27, SID 0, SSN 6606, UBIT 0) (DST 0xB5ABE6D5/64703, SRC 
0xD5445A3E/7183) SIG 3111868123
NOT FOUND (VT 27, SID 0, SSN 6606, UBIT 0) (DST 0xB5ABE6D5/64703, SRC 
0xD5445A3E/7183)

test iteration 2: entry_misses 1, add_entry_fail 0, entry_hits 30001, entry_rm 
77999, entry_add 77999
test iteration 3: entry_misses 0, add_entry_fail 0, entry_hits 3, entry_rm 
78000, entry_add 78000
test iteration 4: entry_misses 0, add_entry_fail 0, entry_hits 3, entry_rm 
78000, entry_add 78000

ADD (VT 56, SID 0, SSN , UBIT 1) (DST 0xB5ABE6D5/64703, SRC 
0xD5445A3E/7183) SIG 777357509
NOT FOUND (VT 56, SID 0, SSN , UBIT 1) (DST 0xB5ABE6D5/64703, SRC 
0xD5445A3E/7183)

test iteration 5: entry_misses 1, add_entry_fail 0, entry_hits 3, entry_rm 
77999, entry_add 78000
test iteration 6: entry_misses 0, add_entry_fail 0, entry_hits 3, entry_rm 
78000, entry_add 78000
test iteration 7: entry_misses 0, add_entry_fail 0, entry_hits 3, entry_rm 
78000, entry_add 78000
test iteration 8: entry_misses 0, add_entry_fail 0, entry_hits 3, entry_rm 
78000, entry_add 78000
test iteration 9: entry_misses 0, add_entry_fail 0, entry_hits 3, entry_rm 
78000, entry_add 78000





test iteration 2:
(*) receiving an already exist message for the given key before inserting to 
the table.
ALREADY EXISTS (VT 27, SID 0, SSN 6606, UBIT 0) (DST 0xB5ABE6D5/64703, SRC 
0xD5445A3E/7183) SIG 3111868123
(*) when later performing lookup I get a not found message..
NOT FOUND (VT 27, SID 0, SSN 6606, UBIT 0) (DST 0xB5ABE6D5/64703, SRC 
0xD5445A3E/7183)


test iteration 5:
(*) entry insterted to the table and was not found when performing lookup:
ADD (VT 56, SID 0, SSN , UBIT 1) (DST 0xB5ABE6D5/64703, SRC 
0xD5445A3E/7183) SIG 777357509
NOT FOUND (VT 56, SID 0, SSN , UBIT 1) (DST 0xB5ABE6D5/64703, SRC 
0xD5445A3E/7183)



Re: [dpdk-dev] errors while working with dpdk cuckoo hash

2017-08-30 Thread Shirley Avishour
Hi Pablo,
Attached are 2 files. one which contains the results and the other is the c
code. I will attach the c file again.
I managed to recreate the problem after upgrading to stable version
dpdk-stable-16.11.2.
Thanks,
Shirley.


On Wed, Aug 30, 2017 at 3:37 PM, De Lara Guarch, Pablo <
pablo.de.lara.gua...@intel.com> wrote:

> Hi Shirley,
>
> > -Original Message-
> > From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Shirley Avishour
> > Sent: Monday, August 21, 2017 12:37 PM
> > To: dev@dpdk.org
> > Subject: [dpdk-dev] errors while working with dpdk cuckoo hash
> >
> > Hi,
> >
> > I am running an application over dpdk ver 16.04.
> > My application massively inserting and deleting from a hash table using a
> > key that can be very similar for many instances.
> > I noticed that in some cases I am unable to find an entry while I am
> certain
> > it was inserted successfully.
> > I wrote a test to try and reproduce the problem and I have managed to
> > recreate the problem.
> > Attached is a c file containing the test which recreates the problem.
> > The key and hash function/hash size which I used in the test are
> identical to
> > what I use in my application.
> > attached is also a file containing the printouts of the test and
> indication to 2
> > of the problems I encountered.
> > Are these known issues? is there a fix for that?
>
> Could you attach the code? I only see the results, but not the C code.
>
> Thanks,
> Pablo
>
> >
> > Thanks,
> > Shirley
>


[dpdk-dev] using virtio driver in dpdk release 2.0

2016-07-19 Thread Shirley Avishour
Hi,
We are using KVM for loading our VM using e1000 driver for the VM interface.
we noticed that the maximum rate (rx/tx) I get is 10Mbps.
I am currently attempting to move to virtio driver using dpdk release 2.0.
>From the documentation it seems that I have to load my dpdk application
with librte_pmd_virtio.so.
1) The Makefile under lib/librte_pmd_virtio creates a static library. do I
have to write another Makefile for shared object?
2) there is a known bug regarding application taking control of the kernel
managed virtio device, and it seems that there is a patch for this bug only
for release 16.04  - is that correct? is there a patch for release 2.0 as
well?
http://dpdk.org/dev/patchwork/patch/12462/
3) I tried to run my application with the librte_pmd_virtio.so which I
compiled but the application fails to load the interfaces. is it a known
issue in release 2.0?

thanks.