[dpdk-dev] run ip_fragmentation with cores in different socket will cause core dump

2016-06-13 Thread Ding, HengX

The following command will cause ip_fragmentation app fail:
examples/ip_fragmentation/build/ip_fragmentation -c 0x40002 -n 4 -- -p 0x3 -q 2
while setting core mask to 0x2 or 0x4 will not cause this issue.

error message is shown below:

EAL:   Not managed by a supported kernel driver, skipped
IP_FRAG: Creating direct mempool on socket 0
IP_FRAG: Creating indirect mempool on socket 0
IP_FRAG: Creating LPM table on socket 0
IP_FRAG: Creating LPM6 table on socket 0
IP_FRAG: Creating direct mempool on socket 1
IP_FRAG: Creating indirect mempool on socket 1
IP_FRAG: Creating LPM table on socket 1
IP_FRAG: Creating LPM6 table on socket 1
IP_FRAG: Cannot create LPM table
PANIC in main():
Cannot initialize memory structures!
5: [examples/ip_fragmentation/build/ip_fragmentation() [0x42df85]]
4: [/lib64/libc.so.6(__libc_start_main+0xf5) [0x3a8a421d65]]
3: [examples/ip_fragmentation/build/ip_fragmentation() [0x42d163]]
2: [examples/ip_fragmentation/build/ip_fragmentation(__rte_panic+0xc9) 
[0x426c0c]]
1: [examples/ip_fragmentation/build/ip_fragmentation(rte_dump_stack+0x1a) 
[0x4980aa]]
Aborted (core dumped)

And the bisect result:

f82f705b635d31a63446a16bc4526dbebf293c5a is the first bad commit
commit f82f705b635d31a63446a16bc4526dbebf293c5a
Author: Olivier Matz 
Date:   Wed Apr 6 15:27:58 2016 +0200

lpm: fix allocation of an existing object

Change rte_lpm*_create() functions to return NULL and set rte_errno to
   EEXIST when the object name already exists. This is the behavior
described in the API documentation in the header file.

These functions were returning a pointer to the existing object in that
case, but it is a problem as the caller did not know if the object had
to be freed or not.

Doing this change also makes the lpm API more consistent with the other
APIs (mempool, rings, ...).

Fixes: 916e4f4f4e ("memory: fix for multi process support")

Signed-off-by: Olivier Matz 
Acked-by: Pablo de Lara 

:04 04 a7450772f279b8d459c96dd7a7b193d01bb4ecf6 
0a41cee86a23d7968218183c93a4b60a6bfff1c3 M  app
:04 04 88dd7b9fadc50cbf7824e28195d892635d45581d 
72e3179c9835c6bea6909a29a56a1c7835540368 M  doc
:04 04 8478c771116ac841eeca65c6b08e263229a96d57 
76e2294cca653e366456a73755efbbff687630d2 M  lib


Thanks
Ding Heng


[dpdk-dev] testpmd could not start up with vmxnet3 port

2016-03-23 Thread Ding, HengX
Testpmd output is as below:

./x86_64-native-linuxapp-gcc/app/testpmd -c f -n 4 --  -i
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 0 on socket 0
EAL: Detected lcore 3 as core 1 on socket 0
EAL: Support maximum 128 logical core(s) by configuration.
EAL: Detected 4 lcore(s)
EAL: Probing VFIO support...
EAL: Module /sys/module/vfio_pci not found! error 2 (No such file or directory)
EAL: VFIO modules not loaded, skipping VFIO support...
EAL: Setting up physically contiguous memory...
EAL: Ask a virtual area of 0x80 bytes
EAL: Virtual area found at 0x7ff3c560 (size = 0x80)
EAL: Ask a virtual area of 0x60 bytes
EAL: Virtual area found at 0x7ff3c4e0 (size = 0x60)
EAL: Ask a virtual area of 0x5680 bytes
EAL: Virtual area found at 0x7ff36e40 (size = 0x5680)
EAL: Ask a virtual area of 0x2800 bytes
EAL: Virtual area found at 0x7ff34620 (size = 0x2800)
EAL: Ask a virtual area of 0x20 bytes
EAL: Virtual area found at 0x7ff345e0 (size = 0x20)
EAL: Ask a virtual area of 0x60 bytes
EAL: Virtual area found at 0x7ff34560 (size = 0x60)
EAL: Ask a virtual area of 0x20 bytes
EAL: Virtual area found at 0x7ff34520 (size = 0x20)
EAL: Requesting 1024 pages of size 2MB from socket 0
EAL: TSC frequency is ~2793268 KHz
EAL: Master lcore 0 is ready (tid=c62c9940;cpuset=[0])
EAL: lcore 3 is ready (tid=435f0700;cpuset=[3])
EAL: lcore 1 is ready (tid=445f2700;cpuset=[1])
EAL: lcore 2 is ready (tid=43df1700;cpuset=[2])
EAL: PCI device :03:00.0 on NUMA socket -1
EAL:   probe driver: 15ad:7b0 rte_vmxnet3_pmd
EAL:   Not managed by a supported kernel driver, skipped
EAL: PCI device :0b:00.0 on NUMA socket -1
EAL:   probe driver: 15ad:7b0 rte_vmxnet3_pmd
EAL:   PCI memory mapped at 0x7ff3c5e0
EAL:   PCI memory mapped at 0x7ff3c5e01000
EAL:   PCI memory mapped at 0x7ff3c5e02000
EAL: PCI device :13:00.0 on NUMA socket -1
EAL:   probe driver: 15ad:7b0 rte_vmxnet3_pmd
EAL:   PCI memory mapped at 0x7ff3c5e04000
EAL:   PCI memory mapped at 0x7ff3c5e05000
EAL:   PCI memory mapped at 0x7ff3c5e06000
Interactive-mode selected
Configuring Port 0 (socket 0)
Fail to configure port 0 tx queues
EAL: Error - exiting with code: 1
  Cause: Start ports failed

From: Yong Wang [mailto:yongw...@vmware.com]
Sent: Wednesday, March 23, 2016 1:58 PM
To: Xu, Qian Q; Ding, HengX
Cc: dev at dpdk.org; Stephen Hemminger
Subject: Re: testpmd could not start up with vmxnet3 port


From: "Xu, Qian Q" mailto:qian.q...@intel.com>>
Date: Tuesday, March 22, 2016 at 8:31 PM
To: "Ding, HengX" mailto:hengx.ding at intel.com>>, 
Yong mailto:yongwang at vmware.com>>
Cc: "dev at dpdk.org<mailto:dev at dpdk.org>" mailto:dev at 
dpdk.org>>
Subject: RE: testpmd could not start up with vmxnet3 port

It?s a regression, vmxnet3 can work with dpdk2.2, but now it can?t work well.
Yong,
Heng found that your patch may be the first one to break the function, could 
you check it? Thx.

Thanks
Qian

From: Ding, HengX
Sent: Wednesday, March 23, 2016 11:28 AM
To: yongwang at vmware.com<mailto:yongwang at vmware.com>
Cc: Xu, Qian Q; dev at dpdk.org<mailto:dev at dpdk.org>
Subject: testpmd could not start up with vmxnet3 port

Testpmd will fail to start up with vmxnet3 port. You can reproduce this issue 
follow these steps:


1.   Right click your VM and click edit settings

2.   Click ?Add?? button.

3.   Choose Ethernet Adapter and click next

4.   Choose vmxnet3 as the Adapter Type, and select a network connection. 
Click next and finish config.

5.   Add another vmxnet3 port to VM follow step 1-4.

6.   Compile dpdk, bind vmxnet3 port to igb_uio and run testpmd: 
./x86_64-native-linuxapp-gcc/app/testpmd -c f -n 4 -- -i


Here is the  bisect result:
f598fd063bb17eba9310ff48164014d09f40c759 is the first bad commit
commit f598fd063bb17eba9310ff48164014d09f40c759
Author: Yong Wang mailto:yongwang at vmware.com>>
Date:   Tue Jan 12 18:08:35 2016 -0800

vmxnet3: add Tx L4 checksum offload

Support TCP/UDP checksum offload.

Signed-off-by: Yong Wang mailto:yongwang at 
vmware.com>>
Acked-by: Stephen Hemminger mailto:stephen 
at networkplumber.org>>

:04 04 4524306879c4c0093ac54b0c66b8a8f895af8337 
8e1473e7cc9052003abe6caae8e8b232810972d4 M  doc
:04 04 ad9cd888717dd976a43cfe05aaf33f3b83a2f7bc 
9fbd6fefb95f67bb407bb9a7efcf39e707ab21a7 M  drivers

Resend due to formatting issues.

Currently vmxnet3?s default_txconf.txq_flags is set to the following, which is 
used by testpmd
as there is no explicit txconf passed when initializing tx queue:

dev_info->default_txconf.txq_flags = ETH_TXQ_FLAGS_NOMULTSEGS |
ETH_TXQ_FLAGS_NOOFFLOADS;

With the referred patch that introduced l4 cksum offload, we should update the 
default txq
flags 

[dpdk-dev] vmxnet3 can't work now and found the patch which broke it.

2016-03-23 Thread Ding, HengX

Testpmd will fail to start up with vmxnet3 port. You can reproduce this issue 
follow these steps:


1.   Right click your VM and click edit settings

2.   Click "Add..." button.

3.   Choose Ethernet Adapter and click next

4.   Choose vmxnet3 as the Adapter Type, and select a network connection. 
Click next and finish config.

5.   Add another vmxnet3 port to VM follow step 1-4.

6.   Compile dpdk, bind vmxnet3 port to igb_uio and run testpmd: 
./x86_64-native-linuxapp-gcc/app/testpmd -c f -n 4 -- -i


Here is the  bisect result:
f598fd063bb17eba9310ff48164014d09f40c759 is the first bad commit
commit f598fd063bb17eba9310ff48164014d09f40c759
Author: Yong Wang 
Date:   Tue Jan 12 18:08:35 2016 -0800

vmxnet3: add Tx L4 checksum offload

Support TCP/UDP checksum offload.

Signed-off-by: Yong Wang 
Acked-by: Stephen Hemminger 

:04 04 4524306879c4c0093ac54b0c66b8a8f895af8337 
8e1473e7cc9052003abe6caae8e8b232810972d4 M  doc
:04 04 ad9cd888717dd976a43cfe05aaf33f3b83a2f7bc 
9fbd6fefb95f67bb407bb9a7efcf39e707ab21a7 M  drivers


[dpdk-dev] testpmd could not start up with vmxnet3 port

2016-03-23 Thread Ding, HengX
Testpmd will fail to start up with vmxnet3 port. You can reproduce this issue 
follow these steps:


1.   Right click your VM and click edit settings

2.   Click "Add..." button.

3.   Choose Ethernet Adapter and click next

4.   Choose vmxnet3 as the Adapter Type, and select a network connection. 
Click next and finish config.

5.   Add another vmxnet3 port to VM follow step 1-4.

6.   Compile dpdk, bind vmxnet3 port to igb_uio and run testpmd: 
./x86_64-native-linuxapp-gcc/app/testpmd -c f -n 4 -- -i


Here is the  bisect result:
f598fd063bb17eba9310ff48164014d09f40c759 is the first bad commit
commit f598fd063bb17eba9310ff48164014d09f40c759
Author: Yong Wang 
Date:   Tue Jan 12 18:08:35 2016 -0800

vmxnet3: add Tx L4 checksum offload

Support TCP/UDP checksum offload.

Signed-off-by: Yong Wang 
Acked-by: Stephen Hemminger 

:04 04 4524306879c4c0093ac54b0c66b8a8f895af8337 
8e1473e7cc9052003abe6caae8e8b232810972d4 M  doc
:04 04 ad9cd888717dd976a43cfe05aaf33f3b83a2f7bc 
9fbd6fefb95f67bb407bb9a7efcf39e707ab21a7 M  drivers


[dpdk-dev] [PATCH v3 00/18] fm10k: update shared code

2016-02-29 Thread Ding, HengX
Tested-by: Heng Ding 

-Original Message-
From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Wang Xiao W
Sent: Friday, February 19, 2016 7:07 PM
To: Chen, Jing D
Cc: dev at dpdk.org
Subject: [dpdk-dev] [PATCH v3 00/18] fm10k: update shared code

v3:
* Fixed checkpatch.pl warning about long commit message.
* Fixed the issue of compile failure about part of patches applied.
* Split the misc-small-fixes patch into several patches.

v2:
* Put the two extra fix patches ahead of the base code patches.

This patch set has passed regression test.

Wang Xiao W (18):
  fm10k: use default mailbox message handler for PF
  fm10k/base: correct typecast in fm10k_update_xc_addr_pf
  fm10k/base: cleanup namespace pollution
  fm10k/base: use bitshift for itr_scale
  fm10k/base: reset max_queues on init_hw_vf failure
  fm10k/base: document ITR scale workaround in VF TDLEN register
  fm10k/base: cleanup lines over 80 characters
  fm10k/base: cleanup useless else
  fm10k/base: use BIT macro instead of open-coded bit-shifting of 1
  fm10k/base: do not use CamelCase
  fm10k/base: use memcpy for mac addr copy
  fm10k/base: allow removal of is_slot_appropriate function
  fm10k/base: consistently use VLAN ID when referencing vid variables
  fm10k/base: imporve comment per upstream review changes
  fm10k/base: fix TLV structures alignment
  fm10k/base: move constants to the right of binary operators
  fm10k/base: minor cleanups
  fm10k/base: remove unused struct element

 drivers/net/fm10k/base/fm10k_api.c   |   2 +
 drivers/net/fm10k/base/fm10k_api.h   |   2 +
 drivers/net/fm10k/base/fm10k_mbx.c   |  63 +++-
 drivers/net/fm10k/base/fm10k_mbx.h   |  11 +--
 drivers/net/fm10k/base/fm10k_osdep.h |  32 ++
 drivers/net/fm10k/base/fm10k_pf.c|  88 +
 drivers/net/fm10k/base/fm10k_pf.h|  18 ++--
 drivers/net/fm10k/base/fm10k_tlv.c   |  40 
 drivers/net/fm10k/base/fm10k_tlv.h   |   9 +-
 drivers/net/fm10k/base/fm10k_type.h  | 182 +++
 drivers/net/fm10k/base/fm10k_vf.c|  32 --
 drivers/net/fm10k/fm10k_ethdev.c |  41 +++-
 12 files changed, 222 insertions(+), 298 deletions(-)

-- 
1.9.3