[dpdk-dev] KNI sample application running procedure

2015-12-07 Thread Abdul, Jaffar
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 &#x

[dpdk-dev] KNI sample application running procedure

2015-12-07 Thread Abdul, Jaffar
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

2015-11-25 Thread Abdul, Jaffar
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

2015-11-25 Thread Abdul, Jaffar
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

2015-07-02 Thread Abdul, Jaffar
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

2015-07-02 Thread Abdul, Jaffar
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

2015-07-01 Thread Abdul, Jaffar
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

2015-06-10 Thread Abdul, Jaffar
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

2015-06-08 Thread Abdul, Jaffar
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