[dpdk-dev] KNI sample application running procedure
Hi Nishant, Thanks for your suggestions but even it did not work, In the meanwhile, I will see what can I do from my side. Any other suggestions from the community is also really helpful at this time root at x10sdv-f:/opt/dpdk/x86_64-native-linuxapp-gcc/app# ./kni -c 0x0f -n 2 -- -P -p 0x3 --config="(0,2,3),(1,0,1)" EAL: Detected lcore 0 as core 0 on socket 0 EAL: Detected lcore 1 as core 1 on socket 0 EAL: Detected lcore 2 as core 2 on socket 0 EAL: Detected lcore 3 as core 3 on socket 0 EAL: Detected lcore 4 as core 4 on socket 0 EAL: Detected lcore 5 as core 5 on socket 0 EAL: Detected lcore 6 as core 6 on socket 0 EAL: Detected lcore 7 as core 7 on socket 0 EAL: Detected lcore 8 as core 0 on socket 0 EAL: Detected lcore 9 as core 1 on socket 0 EAL: Detected lcore 10 as core 2 on socket 0 EAL: Detected lcore 11 as core 3 on socket 0 EAL: Detected lcore 12 as core 4 on socket 0 EAL: Detected lcore 13 as core 5 on socket 0 EAL: Detected lcore 14 as core 6 on socket 0 EAL: Detected lcore 15 as core 7 on socket 0 EAL: Support maximum 16 logical core(s) by configuration. EAL: Detected 16 lcore(s) EAL: VFIO modules not all loaded, skip VFIO support... EAL: Setting up physically contiguous memory... EAL: Ask a virtual area of 0x20 bytes EAL: Virtual area found at 0x7ff6be40 (size = 0x20) EAL: Ask a virtual area of 0x20 bytes EAL: Virtual area found at 0x7ff6be00 (size = 0x20) EAL: Ask a virtual area of 0x3c40 bytes EAL: Virtual area found at 0x7ff681a0 (size = 0x3c40) EAL: Ask a virtual area of 0x360 bytes EAL: Virtual area found at 0x7ff67e20 (size = 0x360) EAL: Ask a virtual area of 0x20 bytes EAL: Virtual area found at 0x7ff67de0 (size = 0x20) EAL: Ask a virtual area of 0xc000 bytes EAL: Virtual area found at 0x7ff5bdc0 (size = 0xc000) EAL: Requesting 2048 pages of size 2MB from socket 0 EAL: TSC frequency is ~201 KHz EAL: Master lcore 0 is ready (tid=bf8028c0;cpuset=[0]) EAL: lcore 3 is ready (tid=bcbfd700;cpuset=[3]) EAL: lcore 1 is ready (tid=bdbff700;cpuset=[1]) EAL: lcore 2 is ready (tid=bd3fe700;cpuset=[2]) EAL: PCI device :03:00.0 on NUMA socket -1 EAL: probe driver: 8086:15ad rte_ixgbe_pmd EAL: Not managed by a supported kernel driver, skipped EAL: PCI device :03:00.1 on NUMA socket -1 EAL: probe driver: 8086:15ad rte_ixgbe_pmd EAL: Not managed by a supported kernel driver, skipped EAL: PCI device :05:00.0 on NUMA socket -1 EAL: probe driver: 8086:1521 rte_igb_pmd EAL: PCI memory mapped at 0x7ff6be60 EAL: PCI memory mapped at 0x7ff6be62 PMD: eth_igb_dev_init(): port_id 0 vendorID=0x8086 deviceID=0x1521 EAL: PCI device :05:00.1 on NUMA socket -1 EAL: probe driver: 8086:1521 rte_igb_pmd EAL: PCI memory mapped at 0x7ff6be624000 EAL: PCI memory mapped at 0x7ff6be644000 PMD: eth_igb_dev_init(): port_id 1 vendorID=0x8086 deviceID=0x1521 APP: Port ID: 0 APP: Rx lcore ID: 2, Tx lcore ID: 3 APP: Port ID: 1 APP: Rx lcore ID: 0, Tx lcore ID: 1 EAL: Error - exiting with code: 1 Cause: portmask is not consistent to port ids specified in --config root at x10sdv-f:/opt/dpdk/x86_64-native-linuxapp-gcc/app# Thanks Jaffar From: Nishant Verma [mailto:vnis...@gmail.com] Sent: Monday, December 07, 2015 1:58 PM To: Abdul, Jaffar Cc: dev at dpdk.org; Ismail, Aws Subject: Re: [dpdk-dev] KNI sample application running procedure As par error message, it seems error lies in validation. But it seems right Can you try to run the app without kthread option. if you haven't tried that. just to pin point the problem. ./kni -c 0x0f -n 2 -- -P -p 0x3 --config="(0,2,3),(1,0,1)" while executing, load kni module with single mode option. On Mon, Dec 7, 2015 at 3:48 PM, Abdul, Jaffar mailto:jabdul at ciena.com>> wrote: Hi Guys, I am trying to run the KNI sample application according to the DPDK documentation which is given below. http://dpdk.org/doc/guides/sample_app_ug/kernel_nic_interface.html#running-the-application I am not able to run the app successfully, I don't have this problem with any other DPDK example application and I also verified that I have loaded the *.ko files properly (rte_kni.ko, igb_uio.ko, etc.) I have also loaded rte_kni.ko with kthread_mode single/multiple but both results are same. I am using two 1G ports in this example which are port 0 and port 1 and it has been attached to DPDK through (dpdk_nic_bind.py) script. Output of the dpdk_nic_bind.py root at x10sdv-f:/# /opt/dpdk/tools/dpdk_nic_bind.py --status Network devices using DPDK-compatible driver :05:00.0 'I350 Gigabit Network Connection' drv=igb_uio unused= :05:00.1 'I350 Gigabit Network Connection' drv=igb_uio unused= Network devices using kernel driver === :03:00.0 'Device 15ad' if=eth2 drv=ixgbe unused=igb_uio :03:00.1
[dpdk-dev] KNI sample application running procedure
Hi Guys, I am trying to run the KNI sample application according to the DPDK documentation which is given below. http://dpdk.org/doc/guides/sample_app_ug/kernel_nic_interface.html#running-the-application I am not able to run the app successfully, I don't have this problem with any other DPDK example application and I also verified that I have loaded the *.ko files properly (rte_kni.ko, igb_uio.ko, etc.) I have also loaded rte_kni.ko with kthread_mode single/multiple but both results are same. I am using two 1G ports in this example which are port 0 and port 1 and it has been attached to DPDK through (dpdk_nic_bind.py) script. Output of the dpdk_nic_bind.py root at x10sdv-f:/# /opt/dpdk/tools/dpdk_nic_bind.py --status Network devices using DPDK-compatible driver :05:00.0 'I350 Gigabit Network Connection' drv=igb_uio unused= :05:00.1 'I350 Gigabit Network Connection' drv=igb_uio unused= Network devices using kernel driver === :03:00.0 'Device 15ad' if=eth2 drv=ixgbe unused=igb_uio :03:00.1 'Device 15ad' if=eth3 drv=ixgbe unused=igb_uio Other network devices = Here is how I am loading the KNI sample application root at x10sdv-f:/opt/dpdk/x86_64-native-linuxapp-gcc/app# ./kni -c 0x0f -n 2 -- -P -p 0x3 --config="(0,2,3,0),(1,0,1,0)" EAL: Detected lcore 0 as core 0 on socket 0 EAL: Detected lcore 1 as core 1 on socket 0 EAL: Detected lcore 2 as core 2 on socket 0 EAL: Detected lcore 3 as core 3 on socket 0 EAL: Detected lcore 4 as core 4 on socket 0 EAL: Detected lcore 5 as core 5 on socket 0 EAL: Detected lcore 6 as core 6 on socket 0 EAL: Detected lcore 7 as core 7 on socket 0 EAL: Detected lcore 8 as core 0 on socket 0 EAL: Detected lcore 9 as core 1 on socket 0 EAL: Detected lcore 10 as core 2 on socket 0 EAL: Detected lcore 11 as core 3 on socket 0 EAL: Detected lcore 12 as core 4 on socket 0 EAL: Detected lcore 13 as core 5 on socket 0 EAL: Detected lcore 14 as core 6 on socket 0 EAL: Detected lcore 15 as core 7 on socket 0 EAL: Support maximum 16 logical core(s) by configuration. EAL: Detected 16 lcore(s) EAL: VFIO modules not all loaded, skip VFIO support... EAL: Setting up physically contiguous memory... EAL: Ask a virtual area of 0x20 bytes EAL: Virtual area found at 0x7fa27460 (size = 0x20) EAL: Ask a virtual area of 0x20 bytes EAL: Virtual area found at 0x7fa27420 (size = 0x20) EAL: Ask a virtual area of 0x3c40 bytes EAL: Virtual area found at 0x7fa237c0 (size = 0x3c40) EAL: Ask a virtual area of 0x360 bytes EAL: Virtual area found at 0x7fa23440 (size = 0x360) EAL: Ask a virtual area of 0x20 bytes EAL: Virtual area found at 0x7fa23400 (size = 0x20) EAL: Ask a virtual area of 0xc000 bytes EAL: Virtual area found at 0x7fa173e0 (size = 0xc000) EAL: Requesting 2048 pages of size 2MB from socket 0 EAL: TSC frequency is ~201 KHz EAL: Master lcore 0 is ready (tid=75a328c0;cpuset=[0]) EAL: lcore 3 is ready (tid=72dfd700;cpuset=[3]) EAL: lcore 1 is ready (tid=73dff700;cpuset=[1]) EAL: lcore 2 is ready (tid=735fe700;cpuset=[2]) EAL: PCI device :03:00.0 on NUMA socket -1 EAL: probe driver: 8086:15ad rte_ixgbe_pmd EAL: Not managed by a supported kernel driver, skipped EAL: PCI device :03:00.1 on NUMA socket -1 EAL: probe driver: 8086:15ad rte_ixgbe_pmd EAL: Not managed by a supported kernel driver, skipped EAL: PCI device :05:00.0 on NUMA socket -1 EAL: probe driver: 8086:1521 rte_igb_pmd EAL: PCI memory mapped at 0x7fa27480 EAL: PCI memory mapped at 0x7fa27482 PMD: eth_igb_dev_init(): port_id 0 vendorID=0x8086 deviceID=0x1521 EAL: PCI device :05:00.1 on NUMA socket -1 EAL: probe driver: 8086:1521 rte_igb_pmd EAL: PCI memory mapped at 0x7fa274824000 EAL: PCI memory mapped at 0x7fa274844000 PMD: eth_igb_dev_init(): port_id 1 vendorID=0x8086 deviceID=0x1521 APP: Port ID: 0 APP: Rx lcore ID: 2, Tx lcore ID: 3 APP: Kernel thread lcore ID: 0 APP: Port ID: 1 APP: Rx lcore ID: 0, Tx lcore ID: 1 APP: Kernel thread lcore ID: 0 EAL: Error - exiting with code: 1 Cause: portmask is not consistent to port ids specified in --config root at x10sdv-f:/opt/dpdk/x86_64-native-linuxapp-gcc/app# we are using dpdk v2.1 at this moment, any suggestions to make this work would be a great help for me. Please let me know if you need more info on this Thanks a lot in advance! Thanks Jaffar
[dpdk-dev] Issues with running multicore
Hi All, Iam trying to create multi core application by mapping separate function for each core. I had followed Multi process example and I had used pthread. The use case is: 1. In a single process, launch pthread and run rte_eal_init 2. Once rte_eal_init is done, create 3 pthreads 3. Launch master core. 4. In each of 3 pthread, launch slave core. The issue is, I don't see 4 cores running. Instead I see only single core running. Here is the Pseudo code: Init_pmd{ ret = rte_eal_init(args, argv) ==> I had set the number of cores to 4 in the params. pthread_create(&thread1, NULL, (void*)threadFun1, NULL); pthread_create(&thread2, NULL, (void*)threadFun2, NULL); pthread_create(&thread3, NULL, (void*)threadFun3, NULL); rte_eal_mp_remote_launch(launch_pmd_single_lcore, NULL, CALL_MASTER); } Iam mapping each core to threadFun1, threadFun2 and threadFun3. threadFun1 { RTE_LCORE_FOREACH_SLAVE(lcore_id) { if( lcore_id == 1 ) rte_eal_remote_launch(threadFun1_launch_one_lcore, NULL, lcore_id); } } Has anyone seen this issue? Please let me know if iam missing something? Thanks Jaffar
[dpdk-dev] FW: Issues with running multicore
Hi All, Iam trying to create multi core application by mapping separate function for each core. I had followed Multi process example and I had used pthread. The use case is: 1. In a single process, launch pthread and run rte_eal_init 2. Once rte_eal_init is done, create 3 pthreads 3. Launch master core. 4. In each of 3 pthread, launch slave core. The issue is, I don't see 4 cores running. Instead I see only single core running. Here is the Pseudo code: Init_pmd{ ret = rte_eal_init(args, argv) ==> I had set the number of cores to 4 in the params. pthread_create(&thread1, NULL, (void*)threadFun1, NULL); pthread_create(&thread2, NULL, (void*)threadFun2, NULL); pthread_create(&thread3, NULL, (void*)threadFun3, NULL); rte_eal_mp_remote_launch(launch_pmd_single_lcore, NULL, CALL_MASTER); } Iam mapping each core to threadFun1, threadFun2 and threadFun3. threadFun1 { RTE_LCORE_FOREACH_SLAVE(lcore_id) { if( lcore_id == 1 ) rte_eal_remote_launch(threadFun1_launch_one_lcore, NULL, lcore_id); } } Has anyone seen this issue? Please let me know if iam missing something? Thanks Vartha
[dpdk-dev] DPDK Hash library
HI Thanks guys for helping me on this one! Your suggestions are very good and it is very helpful! Thanks Jaffar -Original Message- From: Matthew Hall [mailto:mh...@mhcomputing.net] Sent: Thursday, July 02, 2015 12:27 PM To: De Lara Guarch, Pablo Cc: Abdul, Jaffar; Richardson, Bruce; dev at dpdk.org Subject: Re: [dpdk-dev] DPDK Hash library On Thu, Jul 02, 2015 at 05:55:20PM +, De Lara Guarch, Pablo wrote: > You are probably talking about extendable buckets here. > The downsize of that approach is that you have to allocate memory on > the fly, whereas with the cuckoo hash implementation, the entry can be > stored in an alternative bucket without having to reserve more memory (which > also will take you more time). > With this approach, hash tables can get a higher utilization, as other > less used buckets can be used to store keys from other busier buckets. > > Pablo Expanding and shrinking buckets constantly can also be concurrency-hostile, and is a lot more complicated to get right than just using a good rehash algorithm and a nice static hunk of memory on contiguous hugepages for minimal TLB / cache pressure. If you want to do these more complex manipulations uthash is probably a better route. But it will be slower than the DPDK hashes by quite a ways I think. I used DPDK hash for my TCP socket table where everything is a very predictable size, but I had to use uthash for my unpredictably sized byte buffers for security indicators (IP, URL, Domain, Email, File Hash, etc.) Of course, when you do this kind of stuff in your app it is going to give you scaling problems and you'll have to spend a lot of time tuning it. Matthew.
[dpdk-dev] DPDK Hash library
HI Bruce, Thanks for your inputs. I am wondering why Cuckoo hash is pushing the entry into new bucket why not add a new entry in the same bucket ? Do we see this is better or faster compared to creating one more new entry in the same bucket Thanks Jaffar -Original Message- From: Bruce Richardson [mailto:bruce.richard...@intel.com] Sent: Thursday, July 02, 2015 2:36 AM To: Abdul, Jaffar Cc: dev at dpdk.org Subject: Re: [dpdk-dev] DPDK Hash library On Wed, Jul 01, 2015 at 07:56:28PM -0400, Abdul, Jaffar wrote: > Hi, > > I am wondering how can I use the hash library if I don't know the > number of entries in the bucket (number of entries in the bucket can grow > dynamically) I am trying to use the DPDK hash library for MAC table where I > can't give the fixed number of elements in each bucket. The current DPDK hash library does not support this, unfortunately. There is currently an effort underway to do a cuckoo hash implementation for DPDK (patches already on-list), to allow items to move between buckets rather than just failing if a bucket is full. Please feel free to try out these patches and provide feedback on them if you can! /Bruce >
[dpdk-dev] DPDK Hash library
Hi, I am wondering how can I use the hash library if I don't know the number of entries in the bucket (number of entries in the bucket can grow dynamically) I am trying to use the DPDK hash library for MAC table where I can't give the fixed number of elements in each bucket. Please let me know if you have suggestions on this topic Thanks in advance! Thanks Jaffar
[dpdk-dev] deadline notice
HI Is there any document which explains the features that are planned for DPDK 2.1 I am just trying to understand the some features such as KNI optimization, KNI multicast, etc. Could you please point me to some documentation related to these features! Thanks Jaffar -Original Message- From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Thomas Monjalon Sent: Wednesday, June 10, 2015 11:40 AM To: dev at dpdk.org Subject: [dpdk-dev] deadline notice Hi, As described in the roadmap (http://dpdk.org/dev/roadmap), starting from this week, every new feature submission will be postponed to release 2.2. The below features, which were submitted earlier, will be accepted in the release 2.1 if they are correctly reviewed and acknowledged before the end of June. New fixes and needed reworks will be accepted, of course. During July, only important and small fixes will be integrated. Planned features for DPDK 2.1: - memory size without hugepage - indirect mbuf cloning - packet type - memzone freeing - interrupt mode - speed capability - IEEE1588 timestamping - multicast filtering - flow director extension - ethtool-like ops - hash key size - ring hotplug - e1000 hotplug - igbvf allmulticast - ixgbe base update - ixgbe hotplug - ixgbe LRO - ixgbe extended stats - i40e base update - i40e hotplug - i40e port mirroring - i40e QinQ - fm10k hotplug - fm10k promiscuous - fm10k mac vlan filtering - mlx4 update - cxgbe driver - bnx2x driver - Hyper-V driver - Xen driver - vmxnet3 vlan filtering - vmxnet3 jumbo - virtio hotplug - vhost multiqueue - vhost migration - pcap jumbo - bonding hotplug - bonding dynamic RSS - bonding mode 4 external state machine - uio MSI-X - TILE-Gx architecture - HTM lock elision for x86 - OSv support - jhash update - toeplitz hash - cuckoo hash - KNI optimization - KNI multicast - packet framework enhancements - cmdline polling mode - proc_info app - VXLAN example Thanks a lot
[dpdk-dev] KNIC to Kernel IP interface mapping
HI Is there any many to one mapping schemes available for KNIC interface. Let's say I have 5 kernel IP interfaces and I want to map all the five interfaces to one KNIC (single KNIC), so we can transmit all the frames to KNIC from all the five kernel IP interfaces and when we get the packet from forwarding plane we can put the packet into KNIC and give the packet to corresponding Kernel IP interfaces. We have one to one mapping available according to the documentation but if I have too many IP interfaces I don't want to use too many KNIC as well to provide one to one mapping Thanks in advance! Please let me know if you have any suggestion/ideas to solve this problem! Thanks Jaffar