[dpdk-dev] drops while transmitting to the kni using rte_kni_tx_burst()
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()
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()
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()
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()
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()
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()
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
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
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
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
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
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
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
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
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
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
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
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.