[dpdk-test-report]|SUCCESS | dpdk-next-net|7e5d68e73d| Intel-Testing

sys_stv at intel.com sys_stv at intel.com
Sat Jan 28 00:45:38 CET 2023


Test-Label: intel-Testing
Test-Status: SUCCESS 
_Testing PASS 

DPDK git repo: dpdk-next-net

commit 7e5d68e73d30e83d47e6c0b26669d25584e45ed8
Author: Ferruh Yigit <ferruh.yigit at amd.com>
Date:   Fri Jan 27 22:45:13 2023 +0000

    app/testpmd: fix link check condition on port start
    
    In testpmd port start function, 'need_check_link_status' variable is
    used to detect if a link check is required after port is started.
    
    Intention is if at least one port is started, link check should be
    called, and initially 'need_check_link_status' used as following:
    ```
    start_port
            need_check_link_status <- 0
            for each p in port
                    ret <- config & start p
                    if ret is failure
                            break
                    need_check_link_status <- 1
            if need_check_link_status
                    check link
            else
                    log failure message
    ```
    
    Later above logic is modified [1] because when there is no port at all,
    'need_check_link_status' remains zero and it causes and error message
    although this is a valid use case.
    
    For this code updated as following:
    
    ```
    start_port
            need_check_link_status <- -1
            for each p in port
                    need_check_link_status <- 0
                    ret <- config & start p
                    if ret is failure
                            break
                    need_check_link_status <- 1
            if need_check_link_status == 1
                    check link
            else if need_check_link_status == 0
                    log failure message
    ```
    
    This modification works fine if 'start_port()' called for a single port,
    but function support both single port and all ports with 'RTE_PORT_ALL'
    parameter to the function.
    
    When it is called for all ports, above logic is wrong because
    'need_check_link_status' value reset on each iteration of the loop.
    
    For multi port case, if last port fails to start,
    'need_check_link_status' will be zero and no link check will be done and
    it will log a wrong error message.
    
    Overall there are three cases to cover:
    * No port exist at all
    * All ports are already started
    * At least on port started successfully
    
    To cover all three cases, one option is to use 'need_check_link_status'
    have multiple values to reflect above cases.
    But meaning of values are not obvious which can lead more issues in the
    future.
    
    Instead converting 'need_check_link_status' to multiple boolean
    variables whose names are self explanatory.
    
    This fixes issue and link check called if at least one port started
    successfully as intended.
    Also log message only printed when at least one port exists and all
    ports are already in started state.
    
    [1]
    Fixes: 92d2703e2c43 ("app/testpmd: fix log with no bound device")
    Cc: stable at dpdk.org
    
    Signed-off-by: Ferruh Yigit <ferruh.yigit at amd.com>

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 20.04.5 LTS       
	  Kernel : 5.8.0-63-generic         
	  GCC : 9.4.0-1ubuntu1~20.04.1        
	  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 20.04.5 LTS       
	  Kernel : 5.13.0-30-generic         
	  GCC : 9.4.0-1ubuntu1~20.04.1        
	  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


More information about the test-report mailing list