Test-Label: intel-Testing Test-Status: SUCCESS _Testing PASS DPDK git repo: dpdk-next-net commit cde7b0a383066847d1b586d321232e6addca29a0 Author: Jie Hai Date: Mon May 29 10:26:49 2023 +0800 app/test-pmd: fix not polling all queues without deferred starting Each stream has a read-only "disabled" field that control if this stream should be used to forward. This field depends on states of Rx/Tx queues, please see commit 3c4426db54fc ("app/testpmd: do not poll stopped queues"). Currently, the testpmd and DPDK frameworks maintain queue state separately. That of the primary process of testpmd are set by deferred_start in the queue configuration. And that of the framework(dev->data->rx_queue_state or dev->data->tx_queue_state) is set when the driver enables/disables the queue, and it is shared between the primary/secondary process. If the deferred_start is set, the queue is disabled and the corresponding queue state in the framework changes to stopped. However, the queue state in the framework does not only come from this. If the primary/secondary process stops a queue, the related queue state will change, too. However, the primary process of testpmd does not know the change brought by this operation. Therefore, setting the queue state in the primary testpmd by only the deferred_start is unsafe. For example, Rx/Tx queues who are stopped before the operations of stopping and starting port cannot forward packets after these operations on primary process. Therefore, the primary process should getting the queue state from of the framework as the secondary process does, please see commit e065c9aa3e05 ("app/testpmd: fix secondary process packet forwarding"). Fixes: 3c4426db54fc ("app/testpmd: do not poll stopped queues") Cc: stable@dpdk.org Signed-off-by: Jie Hai Testing Summary : 18 Case Done, 18 Successful, 0 Failures Testbed #1: 9 Case Done, 9 Successful, 0 Failures * Test result details: +-------------+---------------------------+-------+ | suite | case | status| +-------------+---------------------------+-------+ | asan_smoke | test_rxtx_with_ASan_enable| passed| | pf_smoke | test_pf_jumbo_frames | passed| | pf_smoke | test_pf_rss | passed| | pf_smoke | test_pf_tx_rx_queue | passed| | vf_smoke | test_vf_jumbo_frames | passed| | vf_smoke | test_vf_rss | passed| | vf_smoke | test_vf_tx_rx_queue | passed| | virtio_smoke| test_virtio_loopback | passed| | virtio_smoke| test_virtio_pvp | passed| +-------------+---------------------------+-------+ * Environment: OS : Ubuntu 22.04.2 LTS Kernel : 5.15.0-60-generic GCC : 11.3.0-1ubuntu1~22.04 NIC : Ethernet Controller E810-C for SFP Target : x86_64-native-linuxapp-gcc Testbed #2: 9 Case Done, 9 Successful, 0 Failures * Test result details: +-------------+---------------------------+-------+ | suite | case | status| +-------------+---------------------------+-------+ | asan_smoke | test_rxtx_with_ASan_enable| passed| | pf_smoke | test_pf_jumbo_frames | passed| | pf_smoke | test_pf_rss | passed| | pf_smoke | test_pf_tx_rx_queue | passed| | vf_smoke | test_vf_rss | passed| | vf_smoke | test_vf_tx_rx_queue | passed| | vf_smoke | test_vf_jumbo_frames | n/a | | virtio_smoke| test_virtio_loopback | passed| | virtio_smoke| test_virtio_pvp | passed| +-------------+---------------------------+-------+ * Environment: OS : Ubuntu 22.04.2 LTS Kernel : 5.15.0-60-generic GCC : 11.3.0-1ubuntu1~22.04 NIC : Ethernet Controller XL710 for 40GbE QSFP+ Target : x86_64-native-linuxapp-gcc TestPlan: pf_smoke: http://git.dpdk.org/tools/dts/tree/test_plans/pf_smoke_test_plan.rst vf_smoke: http://git.dpdk.org/tools/dts/tree/test_plans/vf_smoke_test_plan.rst asan_smoke: http://git.dpdk.org/tools/dts/tree/test_plans/asan_smoke_test_plan.rst TestSuite: pf_smoke: http://git.dpdk.org/tools/dts/tree/tests/TestSuite_pf_smoke.py vf_smoke: http://git.dpdk.org/tools/dts/tree/tests/TestSuite_vf_smoke.py virtio_smoke: http://git.dpdk.org/tools/dts/tree/tests/TestSuite_virtio_smoke.py asan_smoke: http://git.dpdk.org/tools/dts/tree/tests/TestSuite_asan_smoke.py DPDK STV team