[dpdk-dev] [PATCH v5 0/2] app/testpmd: fix invalid rxq and txq nubmer settings

Peng, Yuan yuan.peng at intel.com
Fri Jan 12 10:09:01 CET 2018


Tested-by: Peng Yuan<yuan.peng at intel.com>

- Tested Branch: master
- Tested commit 6c7001480ac6356ff0a4995f3ed495ed9c866061
- OS: 4.5.5-300.fc24.x86_64
- GCC: gcc version 5.3.1 20151207 (Red Hat 5.3.1-2) (GCC)
- CPU: Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz
- NIC: Intel Corporation Device Fortville [8086:1572]
- Default x86_64-native-linuxapp-gcc configuration
- Prerequisites:
- Total 1 cases, 1 passed, 0 failed

- Case: 
./usertools/dpdk-devbind.py -b igb_uio 05:00:0
 echo 1 >/sys/bus/pci/devices/0000:05:00.0/max_vfs
 ./usertools/dpdk-devbind.py -b vfio-pci 05:02.0
 pf:
 ./x86_64-native-linuxapp-gcc/app/testpmd -c f -n 4 -w 05:00.0,queue-num-per-vf=4 --file-prefix=test1 --socket-mem 1024,1024 - -I
 vf:
 ./x86_64-native-linuxapp-gcc/app/testpmd -c f -n 4 -w 05:02.0 --file-prefix=test2 --socket-mem 1024,1024 - -i --rxq=4 --txq=4
 EAL: Detected 88 lcore(s)
 EAL: Probing VFIO support...
 EAL: VFIO support initialized
 EAL: PCI device 0000:05:02.0 on NUMA socket 0
 EAL: probe driver: 8086:154c net_i40e_vf
 EAL: using IOMMU type 1 (Type 1)
 Interactive-mode selected
 USER1: create a new mbuf pool <mbuf_pool_socket_0>: n=171456, size=2176, socket=0
 USER1: create a new mbuf pool <mbuf_pool_socket_1>: n=171456, size=2176, socket=1
 Configuring Port 0 (socket 0)
 Port 0: 7E:AC:58:44:3C:94
 Checking link statuses...
 Done
 testpmd> port stop all
 Stopping ports...
 Checking link statuses...
 Done
 testpmd> port config all txq 5
 Fail: input txq (5) can't be greater than max_tx_queues (4) of port 0
 testpmd> port config all rxq 5
 Fail: input rxq (5) can't be greater than max_rx_queues (4) of port 0
 testpmd> port start all
 Port 0: 5A:19:E4:5C:A3:C7
 Checking link statuses...
 Done
 testpmd> show port info all
 Current number of RX queues: 4
 Max possible RX queues: 4
 Current number of TX queues: 4
 Max possible TX queues: 4

there is no core dump, and the actual queue number doesn't change.
The case passed.

-----Original Message-----
From: Dai, Wei 
Sent: Friday, January 12, 2018 4:10 PM
To: Peng, Yuan <yuan.peng at intel.com>; Ananyev, Konstantin <konstantin.ananyev at intel.com>; Lu, Wenzhuo <wenzhuo.lu at intel.com>; Xing, Beilei <beilei.xing at intel.com>
Cc: dev at dpdk.org; Dai, Wei <wei.dai at intel.com>; stable at dpdk.org
Subject: [PATCH v5 0/2] app/testpmd: fix invalid rxq and txq nubmer settings

If an invlaid number of RX or TX queues is configured from testpmd command like "port config all rxq number" or "port config all txq number".
or from --rxq and --txq in the command to start testpmd. The global variable nb_rxq or nb_txq is updated by the invalid input.
This can cause testpmd crash. For example, if the maximum number of RX or TX queues is 4, testpmd will crash after running commands "port config all rxq 5", "port config all txq 5" and "start" in sequence.

With these 2 patches, if an invalid input is detected, it is refused and testpmd keeps last correct values of  nb_rxq and nb_txq.

Fixes: ce8d561418d4 ("app/testpmd: add port configuration settings")
Cc: stable at dpdk.org

Signed-off-by: Wei Dai <wei.dai at intel.com>
Aced-by: Konstantin Ananyev <konstantin.ananyev at intel.com>

---
v5: fix building failure with -Werror=maybe-uninitialized by gcc 5.3.1
    fix typo error

v4: update git log message and rename 2 new added functions

v3: follow the guide from Konstantin to use functions to check
    input rxq and txq instead of usage of new added global variables.

v2: fix a bug in v1


Wei Dai (2):
  app/testpmd: fix invalid rxq number setting
  app/testpmd: fix invalid txq number setting

 app/test-pmd/cmdline.c    |  4 +++
 app/test-pmd/parameters.c | 13 +++----
 app/test-pmd/testpmd.c    | 92 +++++++++++++++++++++++++++++++++++++++++++++++
 app/test-pmd/testpmd.h    |  5 +++
 4 files changed, 108 insertions(+), 6 deletions(-)

--
2.7.5



More information about the dev mailing list