Tested-by: Peng Yuan<yuan.p...@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.p...@intel.com>; Ananyev, Konstantin <konstantin.anan...@intel.com>; Lu, Wenzhuo <wenzhuo...@intel.com>; Xing, Beilei <beilei.x...@intel.com> Cc: dev@dpdk.org; Dai, Wei <wei....@intel.com>; sta...@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: sta...@dpdk.org Signed-off-by: Wei Dai <wei....@intel.com> Aced-by: Konstantin Ananyev <konstantin.anan...@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