[-- Attachment #1: Type: text/plain, Size: 456 bytes --] > -----Original Message----- > From: Chen, LingliX <linglix.chen@intel.com> > Sent: Friday, November 12, 2021 1:33 AM > To: dts@dpdk.org > Cc: Chen, LingliX <linglix.chen@intel.com> > Subject: [dts][PATCH V1 2/2] tests/loopback_virtio_user_server_mode: Modify > case sync with testplan > > Modify case 3, 4, 8, 10 sync with testplan. > > Signed-off-by: Lingli Chen <linglix.chen@intel.com> Tested-by: Lingli Chen <linglix.chen@intel.com> [-- Attachment #2: TestLoopbackVirtioUserServerMode.log --] [-- Type: application/octet-stream, Size: 35297 bytes --] 11/11/2021 16:32:37 dts: TEST SUITE : TestLoopbackVirtioUserServerMode 11/11/2021 16:32:37 dts: NIC : fortville_spirit 11/11/2021 16:32:37 dut.10.240.183.220: 11/11/2021 16:32:37 tester: 11/11/2021 16:32:37 dut.10.240.183.220: cat /proc/meminfo |grep Hugepagesize|awk '{print($2)}' 11/11/2021 16:32:37 dut.10.240.183.220: 1048576 11/11/2021 16:32:37 TestLoopbackVirtioUserServerMode: Test Case test_server_mode_launch_virtio11_first Begin 11/11/2021 16:32:37 dut.10.240.183.220: 11/11/2021 16:32:37 tester: 11/11/2021 16:32:37 dut.10.240.183.220: rm -rf ./vhost-net* 11/11/2021 16:32:38 dut.10.240.183.220: 11/11/2021 16:32:38 dut.10.240.183.220: killall -s INT dpdk-testpmd 11/11/2021 16:32:38 dut.10.240.183.220: dpdk-testpmd: no process found 11/11/2021 16:32:41 dut.10.240.183.220: cat /proc/meminfo |grep Hugepagesize|awk '{print($2)}' 11/11/2021 16:32:41 dut.10.240.183.220: 1048576 11/11/2021 16:33:16 TestLoopbackVirtioUserServerMode: ['lanuch virtio first', '64', 12.3411781, 1, ''] 11/11/2021 16:33:16 TestLoopbackVirtioUserServerMode: +---------------------+----------+------------------+--------------+-------+ | Mode | Pkt_size | Throughput(Mpps) | Queue Number | Cycle | +=====================+==========+==================+==============+=======+ | lanuch virtio first | 64 | 12.341 | 1 | | +---------------------+----------+------------------+--------------+-------+ 11/11/2021 16:33:17 TestLoopbackVirtioUserServerMode: Test Case test_server_mode_launch_virtio11_first Result PASSED: 11/11/2021 16:33:17 dut.10.240.183.220: killall -s INT dpdk-testpmd 11/11/2021 16:33:17 dut.10.240.183.220: dpdk-testpmd: no process found 11/11/2021 16:33:20 TestLoopbackVirtioUserServerMode: Test Case test_server_mode_launch_virtio_first Begin 11/11/2021 16:33:20 dut.10.240.183.220: 11/11/2021 16:33:20 tester: 11/11/2021 16:33:20 dut.10.240.183.220: rm -rf ./vhost-net* 11/11/2021 16:33:20 dut.10.240.183.220: 11/11/2021 16:33:20 dut.10.240.183.220: killall -s INT dpdk-testpmd 11/11/2021 16:33:20 dut.10.240.183.220: dpdk-testpmd: no process found 11/11/2021 16:33:24 dut.10.240.183.220: cat /proc/meminfo |grep Hugepagesize|awk '{print($2)}' 11/11/2021 16:33:24 dut.10.240.183.220: 1048576 11/11/2021 16:33:58 TestLoopbackVirtioUserServerMode: ['lanuch virtio first', '64', 10.0701811, 1, ''] 11/11/2021 16:33:59 TestLoopbackVirtioUserServerMode: +---------------------+----------+------------------+--------------+-------+ | Mode | Pkt_size | Throughput(Mpps) | Queue Number | Cycle | +=====================+==========+==================+==============+=======+ | lanuch virtio first | 64 | 10.070 | 1 | | +---------------------+----------+------------------+--------------+-------+ 11/11/2021 16:34:00 TestLoopbackVirtioUserServerMode: Test Case test_server_mode_launch_virtio_first Result PASSED: 11/11/2021 16:34:00 dut.10.240.183.220: killall -s INT dpdk-testpmd 11/11/2021 16:34:00 dut.10.240.183.220: dpdk-testpmd: no process found 11/11/2021 16:34:03 TestLoopbackVirtioUserServerMode: Test Case test_server_mode_reconnect_with_virtio10_inorder_mergeable_path Begin 11/11/2021 16:34:03 dut.10.240.183.220: 11/11/2021 16:34:03 tester: 11/11/2021 16:34:03 dut.10.240.183.220: rm -rf ./vhost-net* 11/11/2021 16:34:03 dut.10.240.183.220: 11/11/2021 16:34:03 dut.10.240.183.220: killall -s INT dpdk-testpmd 11/11/2021 16:34:03 dut.10.240.183.220: dpdk-testpmd: no process found 11/11/2021 16:34:17 dut.10.240.183.220: cat /proc/meminfo |grep Hugepagesize|awk '{print($2)}' 11/11/2021 16:34:17 dut.10.240.183.220: 1048576 11/11/2021 16:34:42 TestLoopbackVirtioUserServerMode: ['virtio1.0 inorder mergeable path', '8k', 1.605271, 2, 'before reconnet'] 11/11/2021 16:34:42 TestLoopbackVirtioUserServerMode: now reconnet from vhost 11/11/2021 16:35:07 TestLoopbackVirtioUserServerMode: ['virtio1.0 inorder mergeable path', '8k', 1.567375, 2, 'reconnet from vhost'] 11/11/2021 16:35:07 TestLoopbackVirtioUserServerMode: now reconnet from virtio_user 11/11/2021 16:35:08 dut.10.240.183.220: cat /proc/meminfo |grep Hugepagesize|awk '{print($2)}' 11/11/2021 16:35:08 dut.10.240.183.220: 1048576 11/11/2021 16:35:33 TestLoopbackVirtioUserServerMode: ['virtio1.0 inorder mergeable path', '8k', 1.6015819, 2, 'reconnet from virtio_user'] 11/11/2021 16:35:33 TestLoopbackVirtioUserServerMode: now vhost port restart 11/11/2021 16:35:47 TestLoopbackVirtioUserServerMode: ['virtio1.0 inorder mergeable path', '8k', 1.5632753, 2, 'after port restart'] 11/11/2021 16:35:47 TestLoopbackVirtioUserServerMode: +----------------------------------+----------+------------------+--------------+---------------------------+ | Mode | Pkt_size | Throughput(Mpps) | Queue Number | Cycle | +==================================+==========+==================+==============+===========================+ | virtio1.0 inorder mergeable path | 8k | 1.605 | 2 | before reconnet | +----------------------------------+----------+------------------+--------------+---------------------------+ | virtio1.0 inorder mergeable path | 8k | 1.567 | 2 | reconnet from vhost | +----------------------------------+----------+------------------+--------------+---------------------------+ | virtio1.0 inorder mergeable path | 8k | 1.602 | 2 | reconnet from virtio_user | +----------------------------------+----------+------------------+--------------+---------------------------+ | virtio1.0 inorder mergeable path | 8k | 1.563 | 2 | after port restart | +----------------------------------+----------+------------------+--------------+---------------------------+ 11/11/2021 16:35:49 TestLoopbackVirtioUserServerMode: Test Case test_server_mode_reconnect_with_virtio10_inorder_mergeable_path Result PASSED: 11/11/2021 16:35:49 dut.10.240.183.220: killall -s INT dpdk-testpmd 11/11/2021 16:35:49 dut.10.240.183.220: dpdk-testpmd: no process found 11/11/2021 16:35:51 TestLoopbackVirtioUserServerMode: Test Case test_server_mode_reconnect_with_virtio10_inorder_non_mergeable_path Begin 11/11/2021 16:35:51 dut.10.240.183.220: 11/11/2021 16:35:52 tester: 11/11/2021 16:35:52 dut.10.240.183.220: rm -rf ./vhost-net* 11/11/2021 16:35:52 dut.10.240.183.220: 11/11/2021 16:35:52 dut.10.240.183.220: killall -s INT dpdk-testpmd 11/11/2021 16:35:52 dut.10.240.183.220: dpdk-testpmd: no process found 11/11/2021 16:36:05 dut.10.240.183.220: cat /proc/meminfo |grep Hugepagesize|awk '{print($2)}' 11/11/2021 16:36:06 dut.10.240.183.220: 1048576 11/11/2021 16:36:30 TestLoopbackVirtioUserServerMode: ['virtio1.0 inorder non_mergeable path', '64', 20.4216092, 2, 'before reconnet'] 11/11/2021 16:36:30 TestLoopbackVirtioUserServerMode: now reconnet from vhost 11/11/2021 16:36:56 TestLoopbackVirtioUserServerMode: ['virtio1.0 inorder non_mergeable path', '64', 20.0933635, 2, 'reconnet from vhost'] 11/11/2021 16:36:56 TestLoopbackVirtioUserServerMode: now reconnet from virtio_user 11/11/2021 16:36:56 dut.10.240.183.220: cat /proc/meminfo |grep Hugepagesize|awk '{print($2)}' 11/11/2021 16:36:56 dut.10.240.183.220: 1048576 11/11/2021 16:37:21 TestLoopbackVirtioUserServerMode: ['virtio1.0 inorder non_mergeable path', '64', 20.1014011, 2, 'reconnet from virtio_user'] 11/11/2021 16:37:21 TestLoopbackVirtioUserServerMode: now vhost port restart 11/11/2021 16:37:36 TestLoopbackVirtioUserServerMode: ['virtio1.0 inorder non_mergeable path', '64', 20.1232493, 2, 'after port restart'] 11/11/2021 16:37:36 TestLoopbackVirtioUserServerMode: +--------------------------------------+----------+------------------+--------------+---------------------------+ | Mode | Pkt_size | Throughput(Mpps) | Queue Number | Cycle | +======================================+==========+==================+==============+===========================+ | virtio1.0 inorder non_mergeable path | 64 | 20.422 | 2 | before reconnet | +--------------------------------------+----------+------------------+--------------+---------------------------+ | virtio1.0 inorder non_mergeable path | 64 | 20.093 | 2 | reconnet from vhost | +--------------------------------------+----------+------------------+--------------+---------------------------+ | virtio1.0 inorder non_mergeable path | 64 | 20.101 | 2 | reconnet from virtio_user | +--------------------------------------+----------+------------------+--------------+---------------------------+ | virtio1.0 inorder non_mergeable path | 64 | 20.123 | 2 | after port restart | +--------------------------------------+----------+------------------+--------------+---------------------------+ 11/11/2021 16:37:37 TestLoopbackVirtioUserServerMode: Test Case test_server_mode_reconnect_with_virtio10_inorder_non_mergeable_path Result PASSED: 11/11/2021 16:37:37 dut.10.240.183.220: killall -s INT dpdk-testpmd 11/11/2021 16:37:37 dut.10.240.183.220: dpdk-testpmd: no process found 11/11/2021 16:37:40 TestLoopbackVirtioUserServerMode: Test Case test_server_mode_reconnect_with_virtio10_mergeable_path Begin 11/11/2021 16:37:40 dut.10.240.183.220: 11/11/2021 16:37:40 tester: 11/11/2021 16:37:40 dut.10.240.183.220: rm -rf ./vhost-net* 11/11/2021 16:37:40 dut.10.240.183.220: 11/11/2021 16:37:40 dut.10.240.183.220: killall -s INT dpdk-testpmd 11/11/2021 16:37:40 dut.10.240.183.220: dpdk-testpmd: no process found 11/11/2021 16:37:54 dut.10.240.183.220: cat /proc/meminfo |grep Hugepagesize|awk '{print($2)}' 11/11/2021 16:37:54 dut.10.240.183.220: 1048576 11/11/2021 16:38:19 TestLoopbackVirtioUserServerMode: ['virtio1.0 mergeable path', '8k', 1.5041071, 8, 'before reconnet'] 11/11/2021 16:38:19 TestLoopbackVirtioUserServerMode: now reconnet from vhost 11/11/2021 16:38:44 TestLoopbackVirtioUserServerMode: ['virtio1.0 mergeable path', '8k', 1.4837793, 8, 'reconnet from vhost'] 11/11/2021 16:38:44 TestLoopbackVirtioUserServerMode: now reconnet from virtio_user 11/11/2021 16:38:45 dut.10.240.183.220: cat /proc/meminfo |grep Hugepagesize|awk '{print($2)}' 11/11/2021 16:38:45 dut.10.240.183.220: 1048576 11/11/2021 16:39:10 TestLoopbackVirtioUserServerMode: ['virtio1.0 mergeable path', '8k', 1.504703, 8, 'reconnet from virtio_user'] 11/11/2021 16:39:10 TestLoopbackVirtioUserServerMode: now vhost port restart 11/11/2021 16:39:24 TestLoopbackVirtioUserServerMode: ['virtio1.0 mergeable path', '8k', 1.4674132, 8, 'after port restart'] 11/11/2021 16:39:24 TestLoopbackVirtioUserServerMode: +--------------------------+----------+------------------+--------------+---------------------------+ | Mode | Pkt_size | Throughput(Mpps) | Queue Number | Cycle | +==========================+==========+==================+==============+===========================+ | virtio1.0 mergeable path | 8k | 1.504 | 8 | before reconnet | +--------------------------+----------+------------------+--------------+---------------------------+ | virtio1.0 mergeable path | 8k | 1.484 | 8 | reconnet from vhost | +--------------------------+----------+------------------+--------------+---------------------------+ | virtio1.0 mergeable path | 8k | 1.505 | 8 | reconnet from virtio_user | +--------------------------+----------+------------------+--------------+---------------------------+ | virtio1.0 mergeable path | 8k | 1.467 | 8 | after port restart | +--------------------------+----------+------------------+--------------+---------------------------+ 11/11/2021 16:39:26 TestLoopbackVirtioUserServerMode: Test Case test_server_mode_reconnect_with_virtio10_mergeable_path Result PASSED: 11/11/2021 16:39:26 dut.10.240.183.220: killall -s INT dpdk-testpmd 11/11/2021 16:39:26 dut.10.240.183.220: dpdk-testpmd: no process found 11/11/2021 16:39:29 TestLoopbackVirtioUserServerMode: Test Case test_server_mode_reconnect_with_virtio10_non_mergeable_path Begin 11/11/2021 16:39:29 dut.10.240.183.220: 11/11/2021 16:39:29 tester: 11/11/2021 16:39:29 dut.10.240.183.220: rm -rf ./vhost-net* 11/11/2021 16:39:29 dut.10.240.183.220: 11/11/2021 16:39:29 dut.10.240.183.220: killall -s INT dpdk-testpmd 11/11/2021 16:39:29 dut.10.240.183.220: dpdk-testpmd: no process found 11/11/2021 16:39:43 dut.10.240.183.220: cat /proc/meminfo |grep Hugepagesize|awk '{print($2)}' 11/11/2021 16:39:43 dut.10.240.183.220: 1048576 11/11/2021 16:40:08 TestLoopbackVirtioUserServerMode: ['virtio1.0 non_mergeable path', '64', 19.9584751, 2, 'before reconnet'] 11/11/2021 16:40:08 TestLoopbackVirtioUserServerMode: now reconnet from vhost 11/11/2021 16:40:33 TestLoopbackVirtioUserServerMode: ['virtio1.0 non_mergeable path', '64', 19.8783003, 2, 'reconnet from vhost'] 11/11/2021 16:40:33 TestLoopbackVirtioUserServerMode: now reconnet from virtio_user 11/11/2021 16:40:34 dut.10.240.183.220: cat /proc/meminfo |grep Hugepagesize|awk '{print($2)}' 11/11/2021 16:40:34 dut.10.240.183.220: 1048576 11/11/2021 16:40:59 TestLoopbackVirtioUserServerMode: ['virtio1.0 non_mergeable path', '64', 19.8613081, 2, 'reconnet from virtio_user'] 11/11/2021 16:40:59 TestLoopbackVirtioUserServerMode: now vhost port restart 11/11/2021 16:41:13 TestLoopbackVirtioUserServerMode: ['virtio1.0 non_mergeable path', '64', 19.8773524, 2, 'after port restart'] 11/11/2021 16:41:13 TestLoopbackVirtioUserServerMode: +------------------------------+----------+------------------+--------------+---------------------------+ | Mode | Pkt_size | Throughput(Mpps) | Queue Number | Cycle | +==============================+==========+==================+==============+===========================+ | virtio1.0 non_mergeable path | 64 | 19.958 | 2 | before reconnet | +------------------------------+----------+------------------+--------------+---------------------------+ | virtio1.0 non_mergeable path | 64 | 19.878 | 2 | reconnet from vhost | +------------------------------+----------+------------------+--------------+---------------------------+ | virtio1.0 non_mergeable path | 64 | 19.861 | 2 | reconnet from virtio_user | +------------------------------+----------+------------------+--------------+---------------------------+ | virtio1.0 non_mergeable path | 64 | 19.877 | 2 | after port restart | +------------------------------+----------+------------------+--------------+---------------------------+ 11/11/2021 16:41:14 TestLoopbackVirtioUserServerMode: Test Case test_server_mode_reconnect_with_virtio10_non_mergeable_path Result PASSED: 11/11/2021 16:41:14 dut.10.240.183.220: killall -s INT dpdk-testpmd 11/11/2021 16:41:14 dut.10.240.183.220: dpdk-testpmd: no process found 11/11/2021 16:41:17 TestLoopbackVirtioUserServerMode: Test Case test_server_mode_reconnect_with_virtio10_vector_rx_path Begin 11/11/2021 16:41:17 dut.10.240.183.220: 11/11/2021 16:41:17 tester: 11/11/2021 16:41:17 dut.10.240.183.220: rm -rf ./vhost-net* 11/11/2021 16:41:17 dut.10.240.183.220: 11/11/2021 16:41:17 dut.10.240.183.220: killall -s INT dpdk-testpmd 11/11/2021 16:41:18 dut.10.240.183.220: dpdk-testpmd: no process found 11/11/2021 16:41:31 dut.10.240.183.220: cat /proc/meminfo |grep Hugepagesize|awk '{print($2)}' 11/11/2021 16:41:31 dut.10.240.183.220: 1048576 11/11/2021 16:41:56 TestLoopbackVirtioUserServerMode: ['virtio1.0 vector_rx path', '64', 19.9721759, 2, 'before reconnet'] 11/11/2021 16:41:56 TestLoopbackVirtioUserServerMode: now reconnet from vhost 11/11/2021 16:42:21 TestLoopbackVirtioUserServerMode: ['virtio1.0 vector_rx path', '64', 19.842448, 2, 'reconnet from vhost'] 11/11/2021 16:42:21 TestLoopbackVirtioUserServerMode: now reconnet from virtio_user 11/11/2021 16:42:22 dut.10.240.183.220: cat /proc/meminfo |grep Hugepagesize|awk '{print($2)}' 11/11/2021 16:42:22 dut.10.240.183.220: 1048576 11/11/2021 16:42:47 TestLoopbackVirtioUserServerMode: ['virtio1.0 vector_rx path', '64', 19.8442414, 2, 'reconnet from virtio_user'] 11/11/2021 16:42:47 TestLoopbackVirtioUserServerMode: now vhost port restart 11/11/2021 16:43:02 TestLoopbackVirtioUserServerMode: ['virtio1.0 vector_rx path', '64', 19.8363877, 2, 'after port restart'] 11/11/2021 16:43:02 TestLoopbackVirtioUserServerMode: +--------------------------+----------+------------------+--------------+---------------------------+ | Mode | Pkt_size | Throughput(Mpps) | Queue Number | Cycle | +==========================+==========+==================+==============+===========================+ | virtio1.0 vector_rx path | 64 | 19.972 | 2 | before reconnet | +--------------------------+----------+------------------+--------------+---------------------------+ | virtio1.0 vector_rx path | 64 | 19.842 | 2 | reconnet from vhost | +--------------------------+----------+------------------+--------------+---------------------------+ | virtio1.0 vector_rx path | 64 | 19.844 | 2 | reconnet from virtio_user | +--------------------------+----------+------------------+--------------+---------------------------+ | virtio1.0 vector_rx path | 64 | 19.836 | 2 | after port restart | +--------------------------+----------+------------------+--------------+---------------------------+ 11/11/2021 16:43:03 TestLoopbackVirtioUserServerMode: Test Case test_server_mode_reconnect_with_virtio10_vector_rx_path Result PASSED: 11/11/2021 16:43:03 dut.10.240.183.220: killall -s INT dpdk-testpmd 11/11/2021 16:43:03 dut.10.240.183.220: dpdk-testpmd: no process found 11/11/2021 16:43:06 TestLoopbackVirtioUserServerMode: Test Case test_server_mode_reconnect_with_virtio11_inorder_mergeable_path Begin 11/11/2021 16:43:06 dut.10.240.183.220: 11/11/2021 16:43:06 tester: 11/11/2021 16:43:06 dut.10.240.183.220: rm -rf ./vhost-net* 11/11/2021 16:43:06 dut.10.240.183.220: 11/11/2021 16:43:06 dut.10.240.183.220: killall -s INT dpdk-testpmd 11/11/2021 16:43:06 dut.10.240.183.220: dpdk-testpmd: no process found 11/11/2021 16:43:20 dut.10.240.183.220: cat /proc/meminfo |grep Hugepagesize|awk '{print($2)}' 11/11/2021 16:43:20 dut.10.240.183.220: 1048576 11/11/2021 16:43:45 TestLoopbackVirtioUserServerMode: ['virtio1.1 inorder mergeable path', '8k', 1.4457656, 8, 'before reconnet'] 11/11/2021 16:43:45 TestLoopbackVirtioUserServerMode: now reconnet from vhost 11/11/2021 16:44:10 TestLoopbackVirtioUserServerMode: ['virtio1.1 inorder mergeable path', '8k', 1.4291266, 8, 'reconnet from vhost'] 11/11/2021 16:44:10 TestLoopbackVirtioUserServerMode: now reconnet from virtio_user 11/11/2021 16:44:11 dut.10.240.183.220: cat /proc/meminfo |grep Hugepagesize|awk '{print($2)}' 11/11/2021 16:44:11 dut.10.240.183.220: 1048576 11/11/2021 16:44:36 TestLoopbackVirtioUserServerMode: ['virtio1.1 inorder mergeable path', '8k', 1.4458138, 8, 'reconnet from virtio user'] 11/11/2021 16:44:36 TestLoopbackVirtioUserServerMode: now vhost port restart 11/11/2021 16:44:50 TestLoopbackVirtioUserServerMode: ['virtio1.1 inorder mergeable path', '8k', 1.4453421, 8, 'after port restart'] 11/11/2021 16:44:50 TestLoopbackVirtioUserServerMode: +----------------------------------+----------+------------------+--------------+---------------------------+ | Mode | Pkt_size | Throughput(Mpps) | Queue Number | Cycle | +==================================+==========+==================+==============+===========================+ | virtio1.1 inorder mergeable path | 8k | 1.446 | 8 | before reconnet | +----------------------------------+----------+------------------+--------------+---------------------------+ | virtio1.1 inorder mergeable path | 8k | 1.429 | 8 | reconnet from vhost | +----------------------------------+----------+------------------+--------------+---------------------------+ | virtio1.1 inorder mergeable path | 8k | 1.446 | 8 | reconnet from virtio user | +----------------------------------+----------+------------------+--------------+---------------------------+ | virtio1.1 inorder mergeable path | 8k | 1.445 | 8 | after port restart | +----------------------------------+----------+------------------+--------------+---------------------------+ 11/11/2021 16:44:52 TestLoopbackVirtioUserServerMode: Test Case test_server_mode_reconnect_with_virtio11_inorder_mergeable_path Result PASSED: 11/11/2021 16:44:52 dut.10.240.183.220: killall -s INT dpdk-testpmd 11/11/2021 16:44:52 dut.10.240.183.220: dpdk-testpmd: no process found 11/11/2021 16:44:54 TestLoopbackVirtioUserServerMode: Test Case test_server_mode_reconnect_with_virtio11_inorder_non_mergeable_path Begin 11/11/2021 16:44:55 dut.10.240.183.220: 11/11/2021 16:44:55 tester: 11/11/2021 16:44:55 dut.10.240.183.220: rm -rf ./vhost-net* 11/11/2021 16:44:55 dut.10.240.183.220: 11/11/2021 16:44:55 dut.10.240.183.220: killall -s INT dpdk-testpmd 11/11/2021 16:44:55 dut.10.240.183.220: dpdk-testpmd: no process found 11/11/2021 16:45:09 dut.10.240.183.220: cat /proc/meminfo |grep Hugepagesize|awk '{print($2)}' 11/11/2021 16:45:09 dut.10.240.183.220: 1048576 11/11/2021 16:45:33 TestLoopbackVirtioUserServerMode: ['virtio1.1 inorder non_mergeable path', '64', 28.1411045, 2, 'before reconnet'] 11/11/2021 16:45:33 TestLoopbackVirtioUserServerMode: now reconnet from vhost 11/11/2021 16:45:59 TestLoopbackVirtioUserServerMode: ['virtio1.1 inorder non_mergeable path', '64', 28.2530656, 2, 'reconnet from vhost'] 11/11/2021 16:45:59 TestLoopbackVirtioUserServerMode: now reconnet from virtio_user 11/11/2021 16:45:59 dut.10.240.183.220: cat /proc/meminfo |grep Hugepagesize|awk '{print($2)}' 11/11/2021 16:45:59 dut.10.240.183.220: 1048576 11/11/2021 16:46:25 TestLoopbackVirtioUserServerMode: ['virtio1.1 inorder non_mergeable path', '64', 27.9297348, 2, 'reconnet from virtio_user'] 11/11/2021 16:46:25 TestLoopbackVirtioUserServerMode: now vhost port restart 11/11/2021 16:46:39 TestLoopbackVirtioUserServerMode: ['virtio1.1 inorder non_mergeable path', '64', 28.4039964, 2, 'after port restart'] 11/11/2021 16:46:39 TestLoopbackVirtioUserServerMode: +--------------------------------------+----------+------------------+--------------+---------------------------+ | Mode | Pkt_size | Throughput(Mpps) | Queue Number | Cycle | +======================================+==========+==================+==============+===========================+ | virtio1.1 inorder non_mergeable path | 64 | 28.141 | 2 | before reconnet | +--------------------------------------+----------+------------------+--------------+---------------------------+ | virtio1.1 inorder non_mergeable path | 64 | 28.253 | 2 | reconnet from vhost | +--------------------------------------+----------+------------------+--------------+---------------------------+ | virtio1.1 inorder non_mergeable path | 64 | 27.930 | 2 | reconnet from virtio_user | +--------------------------------------+----------+------------------+--------------+---------------------------+ | virtio1.1 inorder non_mergeable path | 64 | 28.404 | 2 | after port restart | +--------------------------------------+----------+------------------+--------------+---------------------------+ 11/11/2021 16:46:40 TestLoopbackVirtioUserServerMode: Test Case test_server_mode_reconnect_with_virtio11_inorder_non_mergeable_path Result PASSED: 11/11/2021 16:46:40 dut.10.240.183.220: killall -s INT dpdk-testpmd 11/11/2021 16:46:40 dut.10.240.183.220: dpdk-testpmd: no process found 11/11/2021 16:46:43 TestLoopbackVirtioUserServerMode: Test Case test_server_mode_reconnect_with_virtio11_inorder_vectorized_path Begin 11/11/2021 16:46:43 dut.10.240.183.220: 11/11/2021 16:46:43 tester: 11/11/2021 16:46:43 dut.10.240.183.220: rm -rf ./vhost-net* 11/11/2021 16:46:43 dut.10.240.183.220: 11/11/2021 16:46:43 dut.10.240.183.220: killall -s INT dpdk-testpmd 11/11/2021 16:46:43 dut.10.240.183.220: dpdk-testpmd: no process found 11/11/2021 16:46:57 dut.10.240.183.220: cat /proc/meminfo |grep Hugepagesize|awk '{print($2)}' 11/11/2021 16:46:57 dut.10.240.183.220: 1048576 11/11/2021 16:47:22 TestLoopbackVirtioUserServerMode: ['virtio1.1 inorder vectorized path', '64', 28.3654356, 2, 'before reconnet'] 11/11/2021 16:47:22 TestLoopbackVirtioUserServerMode: now reconnet from vhost 11/11/2021 16:47:47 TestLoopbackVirtioUserServerMode: ['virtio1.1 inorder vectorized path', '64', 28.3076742, 2, 'reconnet from vhost'] 11/11/2021 16:47:47 TestLoopbackVirtioUserServerMode: now reconnet from virtio_user 11/11/2021 16:47:48 dut.10.240.183.220: cat /proc/meminfo |grep Hugepagesize|awk '{print($2)}' 11/11/2021 16:47:48 dut.10.240.183.220: 1048576 11/11/2021 16:48:13 TestLoopbackVirtioUserServerMode: ['virtio1.1 inorder vectorized path', '64', 28.1348219, 2, 'reconnet from virtio_user'] 11/11/2021 16:48:13 TestLoopbackVirtioUserServerMode: now vhost port restart 11/11/2021 16:48:27 TestLoopbackVirtioUserServerMode: ['virtio1.1 inorder vectorized path', '64', 28.1742994, 2, 'after port restart'] 11/11/2021 16:48:27 TestLoopbackVirtioUserServerMode: +-----------------------------------+----------+------------------+--------------+---------------------------+ | Mode | Pkt_size | Throughput(Mpps) | Queue Number | Cycle | +===================================+==========+==================+==============+===========================+ | virtio1.1 inorder vectorized path | 64 | 28.365 | 2 | before reconnet | +-----------------------------------+----------+------------------+--------------+---------------------------+ | virtio1.1 inorder vectorized path | 64 | 28.308 | 2 | reconnet from vhost | +-----------------------------------+----------+------------------+--------------+---------------------------+ | virtio1.1 inorder vectorized path | 64 | 28.135 | 2 | reconnet from virtio_user | +-----------------------------------+----------+------------------+--------------+---------------------------+ | virtio1.1 inorder vectorized path | 64 | 28.174 | 2 | after port restart | +-----------------------------------+----------+------------------+--------------+---------------------------+ 11/11/2021 16:48:29 TestLoopbackVirtioUserServerMode: Test Case test_server_mode_reconnect_with_virtio11_inorder_vectorized_path Result PASSED: 11/11/2021 16:48:29 dut.10.240.183.220: killall -s INT dpdk-testpmd 11/11/2021 16:48:29 dut.10.240.183.220: dpdk-testpmd: no process found 11/11/2021 16:48:32 TestLoopbackVirtioUserServerMode: Test Case test_server_mode_reconnect_with_virtio11_mergeable_path Begin 11/11/2021 16:48:32 dut.10.240.183.220: 11/11/2021 16:48:32 tester: 11/11/2021 16:48:32 dut.10.240.183.220: rm -rf ./vhost-net* 11/11/2021 16:48:32 dut.10.240.183.220: 11/11/2021 16:48:32 dut.10.240.183.220: killall -s INT dpdk-testpmd 11/11/2021 16:48:32 dut.10.240.183.220: dpdk-testpmd: no process found 11/11/2021 16:48:46 dut.10.240.183.220: cat /proc/meminfo |grep Hugepagesize|awk '{print($2)}' 11/11/2021 16:48:46 dut.10.240.183.220: 1048576 11/11/2021 16:49:11 TestLoopbackVirtioUserServerMode: ['virtio1.1 mergeable path', '8k', 1.4509962, 2, 'before reconnet'] 11/11/2021 16:49:11 TestLoopbackVirtioUserServerMode: now reconnet from vhost 11/11/2021 16:49:36 TestLoopbackVirtioUserServerMode: ['virtio1.1 mergeable path', '8k', 1.4209534, 2, 'reconnet from vhost'] 11/11/2021 16:49:36 TestLoopbackVirtioUserServerMode: now reconnet from virtio_user 11/11/2021 16:49:37 dut.10.240.183.220: cat /proc/meminfo |grep Hugepagesize|awk '{print($2)}' 11/11/2021 16:49:37 dut.10.240.183.220: 1048576 11/11/2021 16:50:02 TestLoopbackVirtioUserServerMode: ['virtio1.1 mergeable path', '8k', 1.4560152, 2, 'reconnet from virtio user'] 11/11/2021 16:50:02 TestLoopbackVirtioUserServerMode: now vhost port restart 11/11/2021 16:50:16 TestLoopbackVirtioUserServerMode: ['virtio1.1 mergeable path', '8k', 1.4461282, 2, 'after port restart'] 11/11/2021 16:50:16 TestLoopbackVirtioUserServerMode: +--------------------------+----------+------------------+--------------+---------------------------+ | Mode | Pkt_size | Throughput(Mpps) | Queue Number | Cycle | +==========================+==========+==================+==============+===========================+ | virtio1.1 mergeable path | 8k | 1.451 | 2 | before reconnet | +--------------------------+----------+------------------+--------------+---------------------------+ | virtio1.1 mergeable path | 8k | 1.421 | 2 | reconnet from vhost | +--------------------------+----------+------------------+--------------+---------------------------+ | virtio1.1 mergeable path | 8k | 1.456 | 2 | reconnet from virtio user | +--------------------------+----------+------------------+--------------+---------------------------+ | virtio1.1 mergeable path | 8k | 1.446 | 2 | after port restart | +--------------------------+----------+------------------+--------------+---------------------------+ 11/11/2021 16:50:17 TestLoopbackVirtioUserServerMode: Test Case test_server_mode_reconnect_with_virtio11_mergeable_path Result PASSED: 11/11/2021 16:50:17 dut.10.240.183.220: killall -s INT dpdk-testpmd 11/11/2021 16:50:18 dut.10.240.183.220: dpdk-testpmd: no process found 11/11/2021 16:50:20 TestLoopbackVirtioUserServerMode: Test Case test_server_mode_reconnect_with_virtio11_non_mergeable_path Begin 11/11/2021 16:50:20 dut.10.240.183.220: 11/11/2021 16:50:21 tester: 11/11/2021 16:50:21 dut.10.240.183.220: rm -rf ./vhost-net* 11/11/2021 16:50:21 dut.10.240.183.220: 11/11/2021 16:50:21 dut.10.240.183.220: killall -s INT dpdk-testpmd 11/11/2021 16:50:21 dut.10.240.183.220: dpdk-testpmd: no process found 11/11/2021 16:50:34 dut.10.240.183.220: cat /proc/meminfo |grep Hugepagesize|awk '{print($2)}' 11/11/2021 16:50:34 dut.10.240.183.220: 1048576 11/11/2021 16:50:59 TestLoopbackVirtioUserServerMode: ['virtio1.1 non_mergeable path', '64', 27.7232849, 2, 'before reconnet'] 11/11/2021 16:50:59 TestLoopbackVirtioUserServerMode: now reconnet from vhost 11/11/2021 16:51:24 TestLoopbackVirtioUserServerMode: ['virtio1.1 non_mergeable path', '64', 27.7245637, 2, 'reconnet from vhost'] 11/11/2021 16:51:24 TestLoopbackVirtioUserServerMode: now reconnet from virtio_user 11/11/2021 16:51:25 dut.10.240.183.220: cat /proc/meminfo |grep Hugepagesize|awk '{print($2)}' 11/11/2021 16:51:25 dut.10.240.183.220: 1048576 11/11/2021 16:51:50 TestLoopbackVirtioUserServerMode: ['virtio1.1 non_mergeable path', '64', 27.8431473, 2, 'reconnet from virtio_user'] 11/11/2021 16:51:50 TestLoopbackVirtioUserServerMode: now vhost port restart 11/11/2021 16:52:05 TestLoopbackVirtioUserServerMode: ['virtio1.1 non_mergeable path', '64', 27.8310099, 2, 'after port restart'] 11/11/2021 16:52:05 TestLoopbackVirtioUserServerMode: +------------------------------+----------+------------------+--------------+---------------------------+ | Mode | Pkt_size | Throughput(Mpps) | Queue Number | Cycle | +==============================+==========+==================+==============+===========================+ | virtio1.1 non_mergeable path | 64 | 27.723 | 2 | before reconnet | +------------------------------+----------+------------------+--------------+---------------------------+ | virtio1.1 non_mergeable path | 64 | 27.725 | 2 | reconnet from vhost | +------------------------------+----------+------------------+--------------+---------------------------+ | virtio1.1 non_mergeable path | 64 | 27.843 | 2 | reconnet from virtio_user | +------------------------------+----------+------------------+--------------+---------------------------+ | virtio1.1 non_mergeable path | 64 | 27.831 | 2 | after port restart | +------------------------------+----------+------------------+--------------+---------------------------+ 11/11/2021 16:52:06 TestLoopbackVirtioUserServerMode: Test Case test_server_mode_reconnect_with_virtio11_non_mergeable_path Result PASSED: 11/11/2021 16:52:06 dut.10.240.183.220: killall -s INT dpdk-testpmd 11/11/2021 16:52:06 dut.10.240.183.220: dpdk-testpmd: no process found 11/11/2021 16:52:09 dts: TEST SUITE ENDED: TestLoopbackVirtioUserServerMode
Modify case 3, 4, 8, 10 sync with testplan. Signed-off-by: Lingli Chen <linglix.chen@intel.com> --- ...tSuite_loopback_virtio_user_server_mode.py | 170 ++++++++++++------ 1 file changed, 112 insertions(+), 58 deletions(-) diff --git a/tests/TestSuite_loopback_virtio_user_server_mode.py b/tests/TestSuite_loopback_virtio_user_server_mode.py index 7fbfe804..ed01de2f 100644 --- a/tests/TestSuite_loopback_virtio_user_server_mode.py +++ b/tests/TestSuite_loopback_virtio_user_server_mode.py @@ -37,11 +37,10 @@ Test loopback virtio-user server mode """ import re import time - import framework.utils as utils from framework.pmd_output import PmdOutput from framework.test_case import TestCase - +from framework.packet import Packet class TestLoopbackVirtioUserServerMode(TestCase): @@ -61,6 +60,12 @@ class TestLoopbackVirtioUserServerMode(TestCase): self.core_list_host = self.core_list[3:6] self.path=self.dut.apps_name['test-pmd'] self.testpmd_name = self.path.split("/")[-1] + self.app_pdump = self.dut.apps_name['pdump'] + self.dump_pcap = "/root/pdump-rx.pcap" + self.device_str = '' + self.dut_ports = self.dut.get_ports() + self.ports_socket = self.dut.get_numa_id(self.dut_ports[0]) + self.cbdma_dev_infos = [] def set_up(self): """ @@ -108,13 +113,17 @@ class TestLoopbackVirtioUserServerMode(TestCase): if set_fwd_mac: self.virtio_user_pmd.execute_cmd("set fwd mac", "testpmd> ", 120) - def lanuch_vhost_testpmd_with_multi_queue(self, extern_params=""): + def lanuch_vhost_testpmd_with_multi_queue(self, extern_params="", set_fwd_mac=True): """ start testpmd with multi qeueue """ - self.lanuch_vhost_testpmd(self.queue_number, self.nb_cores, extern_params=extern_params) + eal_params = "--vdev 'eth_vhost0,iface=vhost-net,client=1,queues={}'".format(self.queue_number) + param = "--rxq={} --txq={} --nb-cores={} {}".format(self.queue_number, self.queue_number, self.nb_cores, extern_params) + self.vhost_pmd.start_testpmd(self.core_list_host, param=param, no_pci=True, ports=[], eal_param=eal_params, prefix='vhost', fixed_prefix=True) + if set_fwd_mac: + self.vhost_pmd.execute_cmd("set fwd mac", "testpmd> ", 120) - def lanuch_virtio_user_testpmd_with_multi_queue(self, mode, extern_params=""): + def lanuch_virtio_user_testpmd_with_multi_queue(self, mode, extern_params="", set_fwd_mac=True): """ start testpmd of vhost user """ @@ -126,7 +135,8 @@ class TestLoopbackVirtioUserServerMode(TestCase): param = "{} --nb-cores={} --rxq={} --txq={}".format(extern_params, self.nb_cores, self.queue_number, self.queue_number) self.virtio_user_pmd.start_testpmd(cores=self.core_list_user, param=param, eal_param=eal_param, \ no_pci=True, ports=[], prefix="virtio", fixed_prefix=True) - self.virtio_user_pmd.execute_cmd("set fwd mac", "testpmd> ", 120) + if set_fwd_mac: + self.virtio_user_pmd.execute_cmd("set fwd mac", "testpmd> ", 120) def start_to_send_packets(self, session_rx, session_tx): """ @@ -136,6 +146,35 @@ class TestLoopbackVirtioUserServerMode(TestCase): session_rx.send_command("start", 3) session_tx.send_expect("start tx_first 32", "testpmd> ", 30) + def start_to_send_8k_packets(self, session_rx, session_tx): + """ + start the testpmd of vhost-user and virtio-user + start to send 8k packets + """ + session_rx.send_command("start", 3) + session_tx.send_expect("set txpkts 2000,2000,2000,2000", "testpmd> ", 30) + session_tx.send_expect("start tx_first 32", "testpmd> ", 30) + + def start_to_send_8k_packets_csum(self, session_tx): + """ + start the testpmd of vhost-user, start to send 8k packets + """ + session_tx.send_expect("set fwd csum", "testpmd> ", 30) + session_tx.send_expect("set txpkts 2000,2000,2000,2000", "testpmd> ", 30) + session_tx.send_expect("set burst 1", "testpmd> ", 30) + session_tx.send_expect("start tx_first 1", "testpmd> ", 10) + session_tx.send_expect("stop", "testpmd> ", 30) + + def start_to_send_8k_packets_csum_cbdma(self, session_tx): + """ + start the testpmd of vhost-user, start to send 8k packets + """ + session_tx.send_expect("vhost enable tx all", "testpmd> ", 30) + session_tx.send_expect("set fwd csum", "testpmd> ", 30) + session_tx.send_expect("set txpkts 64,64,64,2000,2000,2000", "testpmd> ", 30) + session_tx.send_expect("start tx_first 32", "testpmd> ", 5) + session_tx.send_expect("stop", "testpmd> ", 30) + def check_port_throughput_after_port_stop(self): """ check the throughput after port stop @@ -182,6 +221,16 @@ class TestLoopbackVirtioUserServerMode(TestCase): self.check_port_link_status_after_port_restart() self.vhost_pmd.execute_cmd("start tx_first 32", "testpmd> ", 120) + def port_restart_send_8k_packets(self): + self.vhost_pmd.execute_cmd("stop", "testpmd> ", 120) + self.vhost_pmd.execute_cmd("port stop 0", "testpmd> ", 120) + self.check_port_throughput_after_port_stop() + self.vhost_pmd.execute_cmd("clear port stats all", "testpmd> ", 120) + self.vhost_pmd.execute_cmd("port start 0", "testpmd> ", 120) + self.check_port_link_status_after_port_restart() + self.vhost_pmd.execute_cmd("set txpkts 2000,2000,2000,2000", "testpmd> ", 120) + self.vhost_pmd.execute_cmd("start tx_first 32", "testpmd> ", 120) + def relanuch_vhost_testpmd_with_multi_queue(self): self.vhost_pmd.execute_cmd("quit", "#", 60) self.check_link_status(self.virtio_user, "down") @@ -192,7 +241,7 @@ class TestLoopbackVirtioUserServerMode(TestCase): self.check_link_status(self.vhost, "down") self.lanuch_virtio_user_testpmd_with_multi_queue(mode, extern_params) - def calculate_avg_throughput(self, case_info, cycle): + def calculate_avg_throughput(self, case_info, cycle, Pkt_size=True): """ calculate the average throughput """ @@ -206,14 +255,19 @@ class TestLoopbackVirtioUserServerMode(TestCase): result = lines.group(1) results += float(result) Mpps = results / (1000000 * 10) - self.verify(Mpps > 5, "port can not receive packets") - results_row.append(case_info) - results_row.append('64') + if Pkt_size: + self.verify(Mpps > 5, "port can not receive packets") + results_row.append('64') + else: + self.verify(Mpps > 1, "port can not receive packets") + results_row.append('8k') + results_row.append(Mpps) results_row.append(self.queue_number) results_row.append(cycle) self.result_table_add(results_row) + self.logger.info(results_row) def check_packets_of_each_queue(self): """ @@ -247,7 +301,7 @@ class TestLoopbackVirtioUserServerMode(TestCase): def test_server_mode_launch_virtio_first(self): """ - basic test for virtio-user server mode, launch virtio-user first + Test Case 2: basic test for split ring server mode, launch virtio-user first """ self.queue_number = 1 self.nb_cores = 1 @@ -263,7 +317,7 @@ class TestLoopbackVirtioUserServerMode(TestCase): def test_server_mode_launch_virtio11_first(self): """ - basic test for virtio-user server mode, launch virtio-user first + Test Case 1: basic test for packed ring server mode, launch virtio-user first """ self.queue_number = 1 self.nb_cores = 1 @@ -279,7 +333,7 @@ class TestLoopbackVirtioUserServerMode(TestCase): def test_server_mode_reconnect_with_virtio11_mergeable_path(self): """ - reconnect test with virtio 1.1 mergeable path and server mode + Test Case 8: reconnect test with virtio 1.1 mergeable path and server mode """ self.queue_number = 2 self.nb_cores = 2 @@ -288,25 +342,25 @@ class TestLoopbackVirtioUserServerMode(TestCase): extern_params = '--tx-offloads=0x0 --enable-hw-vlan-strip --rss-ip' self.lanuch_vhost_testpmd_with_multi_queue() self.lanuch_virtio_user_testpmd_with_multi_queue(mode=mode, extern_params=extern_params) - self.start_to_send_packets(self.vhost, self.virtio_user) - self.calculate_avg_throughput(case_info, "before reconnet") + self.start_to_send_8k_packets(self.vhost, self.virtio_user) + self.calculate_avg_throughput(case_info, "before reconnet", Pkt_size=False) # reconnect from vhost self.logger.info('now reconnet from vhost') self.relanuch_vhost_testpmd_with_multi_queue() - self.start_to_send_packets(self.virtio_user, self.vhost) - self.calculate_avg_throughput(case_info, "reconnet from vhost") + self.start_to_send_8k_packets(self.virtio_user, self.vhost) + self.calculate_avg_throughput(case_info, "reconnet from vhost", Pkt_size=False) # reconnet from virtio self.logger.info('now reconnet from virtio_user') self.relanuch_virtio_testpmd_with_multi_queue(mode=mode, extern_params=extern_params) - self.start_to_send_packets(self.vhost, self.virtio_user) - self.calculate_avg_throughput(case_info, "reconnet from virtio user") + self.start_to_send_8k_packets(self.vhost, self.virtio_user) + self.calculate_avg_throughput(case_info, "reconnet from virtio user", Pkt_size=False) # port restart self.logger.info('now vhost port restart') - self.port_restart() - self.calculate_avg_throughput(case_info, "after port restart") + self.port_restart_send_8k_packets() + self.calculate_avg_throughput(case_info, "after port restart", Pkt_size=False) self.result_table_print() self.check_packets_of_each_queue() @@ -314,7 +368,7 @@ class TestLoopbackVirtioUserServerMode(TestCase): def test_server_mode_reconnect_with_virtio11_non_mergeable_path(self): """ - reconnect test with virtio 1.1 non_mergeable path and server mode + Test Case 9: reconnect test with virtio 1.1 non_mergeable path and server mode """ self.queue_number = 2 self.nb_cores = 2 @@ -349,34 +403,34 @@ class TestLoopbackVirtioUserServerMode(TestCase): def test_server_mode_reconnect_with_virtio11_inorder_mergeable_path(self): """ - reconnect test with virtio 1.1 inorder mergeable path and server mode + Test Case 10: reconnect test with virtio 1.1 inorder mergeable path and server mode """ - self.queue_number = 2 + self.queue_number = 8 self.nb_cores = 2 case_info = 'virtio1.1 inorder mergeable path' mode = "packed_vq=1,in_order=1,mrg_rxbuf=1" extern_params = '--tx-offloads=0x0 --enable-hw-vlan-strip --rss-ip' self.lanuch_vhost_testpmd_with_multi_queue() self.lanuch_virtio_user_testpmd_with_multi_queue(mode=mode, extern_params=extern_params) - self.start_to_send_packets(self.vhost, self.virtio_user) - self.calculate_avg_throughput(case_info, "before reconnet") + self.start_to_send_8k_packets(self.vhost, self.virtio_user) + self.calculate_avg_throughput(case_info, "before reconnet", Pkt_size=False) # reconnect from vhost self.logger.info('now reconnet from vhost') self.relanuch_vhost_testpmd_with_multi_queue() - self.start_to_send_packets(self.virtio_user, self.vhost) - self.calculate_avg_throughput(case_info, "reconnet from vhost") + self.start_to_send_8k_packets(self.virtio_user, self.vhost) + self.calculate_avg_throughput(case_info, "reconnet from vhost", Pkt_size=False) # reconnet from virtio self.logger.info('now reconnet from virtio_user') self.relanuch_virtio_testpmd_with_multi_queue(mode=mode, extern_params=extern_params) - self.start_to_send_packets(self.vhost, self.virtio_user) - self.calculate_avg_throughput(case_info, "reconnet from virtio user") + self.start_to_send_8k_packets(self.vhost, self.virtio_user) + self.calculate_avg_throughput(case_info, "reconnet from virtio user", Pkt_size=False) # port restart self.logger.info('now vhost port restart') - self.port_restart() - self.calculate_avg_throughput(case_info, "after port restart") + self.port_restart_send_8k_packets() + self.calculate_avg_throughput(case_info, "after port restart", Pkt_size=False) self.result_table_print() self.check_packets_of_each_queue() @@ -384,11 +438,11 @@ class TestLoopbackVirtioUserServerMode(TestCase): def test_server_mode_reconnect_with_virtio11_inorder_non_mergeable_path(self): """ - reconnect test with virtio 1.1 inorder non_mergeable path and server mode + Test Case 11: reconnect test with virtio 1.1 inorder non_mergeable path and server mode """ self.queue_number = 2 self.nb_cores = 2 - case_info = 'virtio1.1 non_mergeable path' + case_info = 'virtio1.1 inorder non_mergeable path' mode = "packed_vq=1,in_order=1,mrg_rxbuf=0,vectorized=1" extern_params = '--rx-offloads=0x10 --enable-hw-vlan-strip --rss-ip' self.lanuch_vhost_testpmd_with_multi_queue() @@ -419,11 +473,11 @@ class TestLoopbackVirtioUserServerMode(TestCase): def test_server_mode_reconnect_with_virtio11_inorder_vectorized_path(self): """ - reconnect test with virtio 1.1 inorder non_mergeable path and server mode + Test Case 12: reconnect test with virtio 1.1 inorder vectorized path and server mode """ self.queue_number = 2 self.nb_cores = 2 - case_info = 'virtio1.1 non_mergeable path' + case_info = 'virtio1.1 inorder vectorized path' mode = "packed_vq=1,in_order=1,mrg_rxbuf=0,vectorized=1" extern_params = '--tx-offloads=0x0 --enable-hw-vlan-strip --rss-ip' self.lanuch_vhost_testpmd_with_multi_queue() @@ -454,7 +508,7 @@ class TestLoopbackVirtioUserServerMode(TestCase): def test_server_mode_reconnect_with_virtio10_inorder_mergeable_path(self): """ - reconnect test with virtio 1.0 inorder mergeable path and server mode + Test Case 4: reconnect test with virtio 1.0 inorder mergeable path and server mode """ self.queue_number = 2 self.nb_cores = 2 @@ -463,25 +517,25 @@ class TestLoopbackVirtioUserServerMode(TestCase): extern_params = '--tx-offloads=0x0 --enable-hw-vlan-strip --rss-ip' self.lanuch_vhost_testpmd_with_multi_queue() self.lanuch_virtio_user_testpmd_with_multi_queue(mode=mode, extern_params=extern_params) - self.start_to_send_packets(self.vhost, self.virtio_user) - self.calculate_avg_throughput(case_info, "before reconnet") + self.start_to_send_8k_packets(self.vhost, self.virtio_user) + self.calculate_avg_throughput(case_info, "before reconnet", Pkt_size=False) # reconnet from vhost self.logger.info('now reconnet from vhost') self.relanuch_vhost_testpmd_with_multi_queue() - self.start_to_send_packets(self.virtio_user, self.vhost) - self.calculate_avg_throughput(case_info, "reconnet from vhost") + self.start_to_send_8k_packets(self.virtio_user, self.vhost) + self.calculate_avg_throughput(case_info, "reconnet from vhost", Pkt_size=False) # reconnet from virtio self.logger.info('now reconnet from virtio_user') self.relanuch_virtio_testpmd_with_multi_queue(mode=mode, extern_params=extern_params) - self.start_to_send_packets(self.vhost, self.virtio_user) - self.calculate_avg_throughput(case_info, "reconnet from virtio_user") + self.start_to_send_8k_packets(self.vhost, self.virtio_user) + self.calculate_avg_throughput(case_info, "reconnet from virtio_user", Pkt_size=False) # port restart self.logger.info('now vhost port restart') - self.port_restart() - self.calculate_avg_throughput(case_info, "after port restart") + self.port_restart_send_8k_packets() + self.calculate_avg_throughput(case_info, "after port restart", Pkt_size=False) self.result_table_print() self.check_packets_of_each_queue() @@ -489,7 +543,7 @@ class TestLoopbackVirtioUserServerMode(TestCase): def test_server_mode_reconnect_with_virtio10_inorder_non_mergeable_path(self): """ - reconnect test with virtio 1.0 inorder non_mergeable path and server mode + Test Case 5: reconnect test with virtio 1.0 inorder non_mergeable path and server mode """ self.queue_number = 2 self.nb_cores = 2 @@ -524,34 +578,34 @@ class TestLoopbackVirtioUserServerMode(TestCase): def test_server_mode_reconnect_with_virtio10_mergeable_path(self): """ - reconnect test with virtio 1.0 mergeable path and server mode + Test Case 3: reconnect test with virtio 1.0 mergeable path and server mode """ - self.queue_number = 2 + self.queue_number = 8 self.nb_cores = 2 case_info = 'virtio1.0 mergeable path' mode = "in_order=0,mrg_rxbuf=1" extern_params = '--tx-offloads=0x0 --enable-hw-vlan-strip --rss-ip' self.lanuch_vhost_testpmd_with_multi_queue() self.lanuch_virtio_user_testpmd_with_multi_queue(mode=mode, extern_params=extern_params) - self.start_to_send_packets(self.vhost, self.virtio_user) - self.calculate_avg_throughput(case_info, "before reconnet") + self.start_to_send_8k_packets(self.vhost, self.virtio_user) + self.calculate_avg_throughput(case_info, "before reconnet", Pkt_size=False) # reconnet from vhost self.logger.info('now reconnet from vhost') self.relanuch_vhost_testpmd_with_multi_queue() - self.start_to_send_packets(self.virtio_user, self.vhost) - self.calculate_avg_throughput(case_info, "reconnet from vhost") + self.start_to_send_8k_packets(self.virtio_user, self.vhost) + self.calculate_avg_throughput(case_info, "reconnet from vhost", Pkt_size=False) # reconnet from virtio self.logger.info('now reconnet from virtio_user') self.relanuch_virtio_testpmd_with_multi_queue(mode=mode, extern_params=extern_params) - self.start_to_send_packets(self.vhost, self.virtio_user) - self.calculate_avg_throughput(case_info, "reconnet from virtio_user") + self.start_to_send_8k_packets(self.vhost, self.virtio_user) + self.calculate_avg_throughput(case_info, "reconnet from virtio_user", Pkt_size=False) # port restart self.logger.info('now vhost port restart') - self.port_restart() - self.calculate_avg_throughput(case_info, "after port restart") + self.port_restart_send_8k_packets() + self.calculate_avg_throughput(case_info, "after port restart", Pkt_size=False) self.result_table_print() self.check_packets_of_each_queue() @@ -559,7 +613,7 @@ class TestLoopbackVirtioUserServerMode(TestCase): def test_server_mode_reconnect_with_virtio10_non_mergeable_path(self): """ - reconnect test with virtio 1.0 non_mergeable path and server mode + Test Case 6: reconnect test with virtio 1.0 non_mergeable path and server mode """ self.queue_number = 2 self.nb_cores = 2 @@ -594,7 +648,7 @@ class TestLoopbackVirtioUserServerMode(TestCase): def test_server_mode_reconnect_with_virtio10_vector_rx_path(self): """ - reconnect test with virtio 1.0 vector_rx path and server mode + Test Case 7: reconnect test with virtio 1.0 vector_rx path and server mode """ self.queue_number = 2 self.nb_cores = 2 -- 2.33.1
Acked-by: Yinan Wang <yinan.wang@intel.com>
> -----Original Message-----
> From: Chen, LingliX <linglix.chen@intel.com>
> Sent: 2021?11?11? 17:35
> To: dts@dpdk.org
> Cc: Wang, Yinan <yinan.wang@intel.com>
> Subject: RE: [dts][PATCH V1 2/2] tests/loopback_virtio_user_server_mode:
> Modify case sync with testplan
>
>
> > -----Original Message-----
> > From: Chen, LingliX <linglix.chen@intel.com>
> > Sent: Friday, November 12, 2021 1:33 AM
> > To: dts@dpdk.org
> > Cc: Chen, LingliX <linglix.chen@intel.com>
> > Subject: [dts][PATCH V1 2/2] tests/loopback_virtio_user_server_mode:
> Modify
> > case sync with testplan
> >
> > Modify case 3, 4, 8, 10 sync with testplan.
> >
> > Signed-off-by: Lingli Chen <linglix.chen@intel.com>
>
> Tested-by: Lingli Chen <linglix.chen@intel.com>
> -----Original Message-----
> From: Chen, LingliX <linglix.chen@intel.com>
> Sent: Tuesday, November 23, 2021 11:47 PM
> To: dts@dpdk.org
> Cc: Chen, LingliX <linglix.chen@intel.com>
> Subject: [dts][PATCH V1 2/2] tests/loopback_virtio_user_server_mode: Modify
> case sync with testplan
>
> Modify case 3, 4, 8, 10 sync with testplan.
>
> Signed-off-by: Lingli Chen <linglix.chen@intel.com>
> ---
Tested-by: Lingli Chen <linglix.chen@intel.com>
Modify case 3, 4, 8, 10 sync with testplan. Signed-off-by: Lingli Chen <linglix.chen@intel.com> --- ...tSuite_loopback_virtio_user_server_mode.py | 170 ++++++++++++------ 1 file changed, 112 insertions(+), 58 deletions(-) diff --git a/tests/TestSuite_loopback_virtio_user_server_mode.py b/tests/TestSuite_loopback_virtio_user_server_mode.py index 7fbfe804..ed01de2f 100644 --- a/tests/TestSuite_loopback_virtio_user_server_mode.py +++ b/tests/TestSuite_loopback_virtio_user_server_mode.py @@ -37,11 +37,10 @@ Test loopback virtio-user server mode """ import re import time - import framework.utils as utils from framework.pmd_output import PmdOutput from framework.test_case import TestCase - +from framework.packet import Packet class TestLoopbackVirtioUserServerMode(TestCase): @@ -61,6 +60,12 @@ class TestLoopbackVirtioUserServerMode(TestCase): self.core_list_host = self.core_list[3:6] self.path=self.dut.apps_name['test-pmd'] self.testpmd_name = self.path.split("/")[-1] + self.app_pdump = self.dut.apps_name['pdump'] + self.dump_pcap = "/root/pdump-rx.pcap" + self.device_str = '' + self.dut_ports = self.dut.get_ports() + self.ports_socket = self.dut.get_numa_id(self.dut_ports[0]) + self.cbdma_dev_infos = [] def set_up(self): """ @@ -108,13 +113,17 @@ class TestLoopbackVirtioUserServerMode(TestCase): if set_fwd_mac: self.virtio_user_pmd.execute_cmd("set fwd mac", "testpmd> ", 120) - def lanuch_vhost_testpmd_with_multi_queue(self, extern_params=""): + def lanuch_vhost_testpmd_with_multi_queue(self, extern_params="", set_fwd_mac=True): """ start testpmd with multi qeueue """ - self.lanuch_vhost_testpmd(self.queue_number, self.nb_cores, extern_params=extern_params) + eal_params = "--vdev 'eth_vhost0,iface=vhost-net,client=1,queues={}'".format(self.queue_number) + param = "--rxq={} --txq={} --nb-cores={} {}".format(self.queue_number, self.queue_number, self.nb_cores, extern_params) + self.vhost_pmd.start_testpmd(self.core_list_host, param=param, no_pci=True, ports=[], eal_param=eal_params, prefix='vhost', fixed_prefix=True) + if set_fwd_mac: + self.vhost_pmd.execute_cmd("set fwd mac", "testpmd> ", 120) - def lanuch_virtio_user_testpmd_with_multi_queue(self, mode, extern_params=""): + def lanuch_virtio_user_testpmd_with_multi_queue(self, mode, extern_params="", set_fwd_mac=True): """ start testpmd of vhost user """ @@ -126,7 +135,8 @@ class TestLoopbackVirtioUserServerMode(TestCase): param = "{} --nb-cores={} --rxq={} --txq={}".format(extern_params, self.nb_cores, self.queue_number, self.queue_number) self.virtio_user_pmd.start_testpmd(cores=self.core_list_user, param=param, eal_param=eal_param, \ no_pci=True, ports=[], prefix="virtio", fixed_prefix=True) - self.virtio_user_pmd.execute_cmd("set fwd mac", "testpmd> ", 120) + if set_fwd_mac: + self.virtio_user_pmd.execute_cmd("set fwd mac", "testpmd> ", 120) def start_to_send_packets(self, session_rx, session_tx): """ @@ -136,6 +146,35 @@ class TestLoopbackVirtioUserServerMode(TestCase): session_rx.send_command("start", 3) session_tx.send_expect("start tx_first 32", "testpmd> ", 30) + def start_to_send_8k_packets(self, session_rx, session_tx): + """ + start the testpmd of vhost-user and virtio-user + start to send 8k packets + """ + session_rx.send_command("start", 3) + session_tx.send_expect("set txpkts 2000,2000,2000,2000", "testpmd> ", 30) + session_tx.send_expect("start tx_first 32", "testpmd> ", 30) + + def start_to_send_8k_packets_csum(self, session_tx): + """ + start the testpmd of vhost-user, start to send 8k packets + """ + session_tx.send_expect("set fwd csum", "testpmd> ", 30) + session_tx.send_expect("set txpkts 2000,2000,2000,2000", "testpmd> ", 30) + session_tx.send_expect("set burst 1", "testpmd> ", 30) + session_tx.send_expect("start tx_first 1", "testpmd> ", 10) + session_tx.send_expect("stop", "testpmd> ", 30) + + def start_to_send_8k_packets_csum_cbdma(self, session_tx): + """ + start the testpmd of vhost-user, start to send 8k packets + """ + session_tx.send_expect("vhost enable tx all", "testpmd> ", 30) + session_tx.send_expect("set fwd csum", "testpmd> ", 30) + session_tx.send_expect("set txpkts 64,64,64,2000,2000,2000", "testpmd> ", 30) + session_tx.send_expect("start tx_first 32", "testpmd> ", 5) + session_tx.send_expect("stop", "testpmd> ", 30) + def check_port_throughput_after_port_stop(self): """ check the throughput after port stop @@ -182,6 +221,16 @@ class TestLoopbackVirtioUserServerMode(TestCase): self.check_port_link_status_after_port_restart() self.vhost_pmd.execute_cmd("start tx_first 32", "testpmd> ", 120) + def port_restart_send_8k_packets(self): + self.vhost_pmd.execute_cmd("stop", "testpmd> ", 120) + self.vhost_pmd.execute_cmd("port stop 0", "testpmd> ", 120) + self.check_port_throughput_after_port_stop() + self.vhost_pmd.execute_cmd("clear port stats all", "testpmd> ", 120) + self.vhost_pmd.execute_cmd("port start 0", "testpmd> ", 120) + self.check_port_link_status_after_port_restart() + self.vhost_pmd.execute_cmd("set txpkts 2000,2000,2000,2000", "testpmd> ", 120) + self.vhost_pmd.execute_cmd("start tx_first 32", "testpmd> ", 120) + def relanuch_vhost_testpmd_with_multi_queue(self): self.vhost_pmd.execute_cmd("quit", "#", 60) self.check_link_status(self.virtio_user, "down") @@ -192,7 +241,7 @@ class TestLoopbackVirtioUserServerMode(TestCase): self.check_link_status(self.vhost, "down") self.lanuch_virtio_user_testpmd_with_multi_queue(mode, extern_params) - def calculate_avg_throughput(self, case_info, cycle): + def calculate_avg_throughput(self, case_info, cycle, Pkt_size=True): """ calculate the average throughput """ @@ -206,14 +255,19 @@ class TestLoopbackVirtioUserServerMode(TestCase): result = lines.group(1) results += float(result) Mpps = results / (1000000 * 10) - self.verify(Mpps > 5, "port can not receive packets") - results_row.append(case_info) - results_row.append('64') + if Pkt_size: + self.verify(Mpps > 5, "port can not receive packets") + results_row.append('64') + else: + self.verify(Mpps > 1, "port can not receive packets") + results_row.append('8k') + results_row.append(Mpps) results_row.append(self.queue_number) results_row.append(cycle) self.result_table_add(results_row) + self.logger.info(results_row) def check_packets_of_each_queue(self): """ @@ -247,7 +301,7 @@ class TestLoopbackVirtioUserServerMode(TestCase): def test_server_mode_launch_virtio_first(self): """ - basic test for virtio-user server mode, launch virtio-user first + Test Case 2: basic test for split ring server mode, launch virtio-user first """ self.queue_number = 1 self.nb_cores = 1 @@ -263,7 +317,7 @@ class TestLoopbackVirtioUserServerMode(TestCase): def test_server_mode_launch_virtio11_first(self): """ - basic test for virtio-user server mode, launch virtio-user first + Test Case 1: basic test for packed ring server mode, launch virtio-user first """ self.queue_number = 1 self.nb_cores = 1 @@ -279,7 +333,7 @@ class TestLoopbackVirtioUserServerMode(TestCase): def test_server_mode_reconnect_with_virtio11_mergeable_path(self): """ - reconnect test with virtio 1.1 mergeable path and server mode + Test Case 8: reconnect test with virtio 1.1 mergeable path and server mode """ self.queue_number = 2 self.nb_cores = 2 @@ -288,25 +342,25 @@ class TestLoopbackVirtioUserServerMode(TestCase): extern_params = '--tx-offloads=0x0 --enable-hw-vlan-strip --rss-ip' self.lanuch_vhost_testpmd_with_multi_queue() self.lanuch_virtio_user_testpmd_with_multi_queue(mode=mode, extern_params=extern_params) - self.start_to_send_packets(self.vhost, self.virtio_user) - self.calculate_avg_throughput(case_info, "before reconnet") + self.start_to_send_8k_packets(self.vhost, self.virtio_user) + self.calculate_avg_throughput(case_info, "before reconnet", Pkt_size=False) # reconnect from vhost self.logger.info('now reconnet from vhost') self.relanuch_vhost_testpmd_with_multi_queue() - self.start_to_send_packets(self.virtio_user, self.vhost) - self.calculate_avg_throughput(case_info, "reconnet from vhost") + self.start_to_send_8k_packets(self.virtio_user, self.vhost) + self.calculate_avg_throughput(case_info, "reconnet from vhost", Pkt_size=False) # reconnet from virtio self.logger.info('now reconnet from virtio_user') self.relanuch_virtio_testpmd_with_multi_queue(mode=mode, extern_params=extern_params) - self.start_to_send_packets(self.vhost, self.virtio_user) - self.calculate_avg_throughput(case_info, "reconnet from virtio user") + self.start_to_send_8k_packets(self.vhost, self.virtio_user) + self.calculate_avg_throughput(case_info, "reconnet from virtio user", Pkt_size=False) # port restart self.logger.info('now vhost port restart') - self.port_restart() - self.calculate_avg_throughput(case_info, "after port restart") + self.port_restart_send_8k_packets() + self.calculate_avg_throughput(case_info, "after port restart", Pkt_size=False) self.result_table_print() self.check_packets_of_each_queue() @@ -314,7 +368,7 @@ class TestLoopbackVirtioUserServerMode(TestCase): def test_server_mode_reconnect_with_virtio11_non_mergeable_path(self): """ - reconnect test with virtio 1.1 non_mergeable path and server mode + Test Case 9: reconnect test with virtio 1.1 non_mergeable path and server mode """ self.queue_number = 2 self.nb_cores = 2 @@ -349,34 +403,34 @@ class TestLoopbackVirtioUserServerMode(TestCase): def test_server_mode_reconnect_with_virtio11_inorder_mergeable_path(self): """ - reconnect test with virtio 1.1 inorder mergeable path and server mode + Test Case 10: reconnect test with virtio 1.1 inorder mergeable path and server mode """ - self.queue_number = 2 + self.queue_number = 8 self.nb_cores = 2 case_info = 'virtio1.1 inorder mergeable path' mode = "packed_vq=1,in_order=1,mrg_rxbuf=1" extern_params = '--tx-offloads=0x0 --enable-hw-vlan-strip --rss-ip' self.lanuch_vhost_testpmd_with_multi_queue() self.lanuch_virtio_user_testpmd_with_multi_queue(mode=mode, extern_params=extern_params) - self.start_to_send_packets(self.vhost, self.virtio_user) - self.calculate_avg_throughput(case_info, "before reconnet") + self.start_to_send_8k_packets(self.vhost, self.virtio_user) + self.calculate_avg_throughput(case_info, "before reconnet", Pkt_size=False) # reconnect from vhost self.logger.info('now reconnet from vhost') self.relanuch_vhost_testpmd_with_multi_queue() - self.start_to_send_packets(self.virtio_user, self.vhost) - self.calculate_avg_throughput(case_info, "reconnet from vhost") + self.start_to_send_8k_packets(self.virtio_user, self.vhost) + self.calculate_avg_throughput(case_info, "reconnet from vhost", Pkt_size=False) # reconnet from virtio self.logger.info('now reconnet from virtio_user') self.relanuch_virtio_testpmd_with_multi_queue(mode=mode, extern_params=extern_params) - self.start_to_send_packets(self.vhost, self.virtio_user) - self.calculate_avg_throughput(case_info, "reconnet from virtio user") + self.start_to_send_8k_packets(self.vhost, self.virtio_user) + self.calculate_avg_throughput(case_info, "reconnet from virtio user", Pkt_size=False) # port restart self.logger.info('now vhost port restart') - self.port_restart() - self.calculate_avg_throughput(case_info, "after port restart") + self.port_restart_send_8k_packets() + self.calculate_avg_throughput(case_info, "after port restart", Pkt_size=False) self.result_table_print() self.check_packets_of_each_queue() @@ -384,11 +438,11 @@ class TestLoopbackVirtioUserServerMode(TestCase): def test_server_mode_reconnect_with_virtio11_inorder_non_mergeable_path(self): """ - reconnect test with virtio 1.1 inorder non_mergeable path and server mode + Test Case 11: reconnect test with virtio 1.1 inorder non_mergeable path and server mode """ self.queue_number = 2 self.nb_cores = 2 - case_info = 'virtio1.1 non_mergeable path' + case_info = 'virtio1.1 inorder non_mergeable path' mode = "packed_vq=1,in_order=1,mrg_rxbuf=0,vectorized=1" extern_params = '--rx-offloads=0x10 --enable-hw-vlan-strip --rss-ip' self.lanuch_vhost_testpmd_with_multi_queue() @@ -419,11 +473,11 @@ class TestLoopbackVirtioUserServerMode(TestCase): def test_server_mode_reconnect_with_virtio11_inorder_vectorized_path(self): """ - reconnect test with virtio 1.1 inorder non_mergeable path and server mode + Test Case 12: reconnect test with virtio 1.1 inorder vectorized path and server mode """ self.queue_number = 2 self.nb_cores = 2 - case_info = 'virtio1.1 non_mergeable path' + case_info = 'virtio1.1 inorder vectorized path' mode = "packed_vq=1,in_order=1,mrg_rxbuf=0,vectorized=1" extern_params = '--tx-offloads=0x0 --enable-hw-vlan-strip --rss-ip' self.lanuch_vhost_testpmd_with_multi_queue() @@ -454,7 +508,7 @@ class TestLoopbackVirtioUserServerMode(TestCase): def test_server_mode_reconnect_with_virtio10_inorder_mergeable_path(self): """ - reconnect test with virtio 1.0 inorder mergeable path and server mode + Test Case 4: reconnect test with virtio 1.0 inorder mergeable path and server mode """ self.queue_number = 2 self.nb_cores = 2 @@ -463,25 +517,25 @@ class TestLoopbackVirtioUserServerMode(TestCase): extern_params = '--tx-offloads=0x0 --enable-hw-vlan-strip --rss-ip' self.lanuch_vhost_testpmd_with_multi_queue() self.lanuch_virtio_user_testpmd_with_multi_queue(mode=mode, extern_params=extern_params) - self.start_to_send_packets(self.vhost, self.virtio_user) - self.calculate_avg_throughput(case_info, "before reconnet") + self.start_to_send_8k_packets(self.vhost, self.virtio_user) + self.calculate_avg_throughput(case_info, "before reconnet", Pkt_size=False) # reconnet from vhost self.logger.info('now reconnet from vhost') self.relanuch_vhost_testpmd_with_multi_queue() - self.start_to_send_packets(self.virtio_user, self.vhost) - self.calculate_avg_throughput(case_info, "reconnet from vhost") + self.start_to_send_8k_packets(self.virtio_user, self.vhost) + self.calculate_avg_throughput(case_info, "reconnet from vhost", Pkt_size=False) # reconnet from virtio self.logger.info('now reconnet from virtio_user') self.relanuch_virtio_testpmd_with_multi_queue(mode=mode, extern_params=extern_params) - self.start_to_send_packets(self.vhost, self.virtio_user) - self.calculate_avg_throughput(case_info, "reconnet from virtio_user") + self.start_to_send_8k_packets(self.vhost, self.virtio_user) + self.calculate_avg_throughput(case_info, "reconnet from virtio_user", Pkt_size=False) # port restart self.logger.info('now vhost port restart') - self.port_restart() - self.calculate_avg_throughput(case_info, "after port restart") + self.port_restart_send_8k_packets() + self.calculate_avg_throughput(case_info, "after port restart", Pkt_size=False) self.result_table_print() self.check_packets_of_each_queue() @@ -489,7 +543,7 @@ class TestLoopbackVirtioUserServerMode(TestCase): def test_server_mode_reconnect_with_virtio10_inorder_non_mergeable_path(self): """ - reconnect test with virtio 1.0 inorder non_mergeable path and server mode + Test Case 5: reconnect test with virtio 1.0 inorder non_mergeable path and server mode """ self.queue_number = 2 self.nb_cores = 2 @@ -524,34 +578,34 @@ class TestLoopbackVirtioUserServerMode(TestCase): def test_server_mode_reconnect_with_virtio10_mergeable_path(self): """ - reconnect test with virtio 1.0 mergeable path and server mode + Test Case 3: reconnect test with virtio 1.0 mergeable path and server mode """ - self.queue_number = 2 + self.queue_number = 8 self.nb_cores = 2 case_info = 'virtio1.0 mergeable path' mode = "in_order=0,mrg_rxbuf=1" extern_params = '--tx-offloads=0x0 --enable-hw-vlan-strip --rss-ip' self.lanuch_vhost_testpmd_with_multi_queue() self.lanuch_virtio_user_testpmd_with_multi_queue(mode=mode, extern_params=extern_params) - self.start_to_send_packets(self.vhost, self.virtio_user) - self.calculate_avg_throughput(case_info, "before reconnet") + self.start_to_send_8k_packets(self.vhost, self.virtio_user) + self.calculate_avg_throughput(case_info, "before reconnet", Pkt_size=False) # reconnet from vhost self.logger.info('now reconnet from vhost') self.relanuch_vhost_testpmd_with_multi_queue() - self.start_to_send_packets(self.virtio_user, self.vhost) - self.calculate_avg_throughput(case_info, "reconnet from vhost") + self.start_to_send_8k_packets(self.virtio_user, self.vhost) + self.calculate_avg_throughput(case_info, "reconnet from vhost", Pkt_size=False) # reconnet from virtio self.logger.info('now reconnet from virtio_user') self.relanuch_virtio_testpmd_with_multi_queue(mode=mode, extern_params=extern_params) - self.start_to_send_packets(self.vhost, self.virtio_user) - self.calculate_avg_throughput(case_info, "reconnet from virtio_user") + self.start_to_send_8k_packets(self.vhost, self.virtio_user) + self.calculate_avg_throughput(case_info, "reconnet from virtio_user", Pkt_size=False) # port restart self.logger.info('now vhost port restart') - self.port_restart() - self.calculate_avg_throughput(case_info, "after port restart") + self.port_restart_send_8k_packets() + self.calculate_avg_throughput(case_info, "after port restart", Pkt_size=False) self.result_table_print() self.check_packets_of_each_queue() @@ -559,7 +613,7 @@ class TestLoopbackVirtioUserServerMode(TestCase): def test_server_mode_reconnect_with_virtio10_non_mergeable_path(self): """ - reconnect test with virtio 1.0 non_mergeable path and server mode + Test Case 6: reconnect test with virtio 1.0 non_mergeable path and server mode """ self.queue_number = 2 self.nb_cores = 2 @@ -594,7 +648,7 @@ class TestLoopbackVirtioUserServerMode(TestCase): def test_server_mode_reconnect_with_virtio10_vector_rx_path(self): """ - reconnect test with virtio 1.0 vector_rx path and server mode + Test Case 7: reconnect test with virtio 1.0 vector_rx path and server mode """ self.queue_number = 2 self.nb_cores = 2 -- 2.33.1
Acked-by: Yinan Wang <yinan.wang@intel.com>
> -----Original Message-----
> From: Chen, LingliX <linglix.chen@intel.com>
> Sent: 2021?11?23? 15:48
> To: dts@dpdk.org
> Cc: Wang, Yinan <yinan.wang@intel.com>
> Subject: RE: [dts][PATCH V1 2/2] tests/loopback_virtio_user_server_mode:
> Modify case sync with testplan
>
>
> > -----Original Message-----
> > From: Chen, LingliX <linglix.chen@intel.com>
> > Sent: Tuesday, November 23, 2021 11:47 PM
> > To: dts@dpdk.org
> > Cc: Chen, LingliX <linglix.chen@intel.com>
> > Subject: [dts][PATCH V1 2/2] tests/loopback_virtio_user_server_mode:
> Modify
> > case sync with testplan
> >
> > Modify case 3, 4, 8, 10 sync with testplan.
> >
> > Signed-off-by: Lingli Chen <linglix.chen@intel.com>
> > ---
>
> Tested-by: Lingli Chen <linglix.chen@intel.com>
> -----Original Message-----
> From: Chen, LingliX <linglix.chen@intel.com>
> Sent: 2021年11月11日 17:35
> To: dts@dpdk.org
> Cc: Wang, Yinan <yinan.wang@intel.com>
> Subject: RE: [dts][PATCH V1 2/2] tests/loopback_virtio_user_server_mode:
> Modify case sync with testplan
>
>
> > -----Original Message-----
> > From: Chen, LingliX <linglix.chen@intel.com>
> > Sent: Friday, November 12, 2021 1:33 AM
> > To: dts@dpdk.org
> > Cc: Chen, LingliX <linglix.chen@intel.com>
> > Subject: [dts][PATCH V1 2/2] tests/loopback_virtio_user_server_mode:
> > Modify case sync with testplan
> >
> > Modify case 3, 4, 8, 10 sync with testplan.
> >
> > Signed-off-by: Lingli Chen <linglix.chen@intel.com>
>
> Tested-by: Lingli Chen <linglix.chen@intel.com>
Applied, thanks
1. Case13 is split into case13 and case14 (split ring and packed ring all path multi queue; CPU copy) 2. Case14 is split into case15 and case16 (split ring and packed ring all path multi queue and iova = VA / PA; cbdma copy) Signed-off-by: Lingli Chen <linglix.chen@intel.com> --- ...back_virtio_user_server_mode_test_plan.rst | 326 ++++++++++++++++-- 1 file changed, 293 insertions(+), 33 deletions(-) diff --git a/test_plans/loopback_virtio_user_server_mode_test_plan.rst b/test_plans/loopback_virtio_user_server_mode_test_plan.rst index 3ba8d983..92fb7528 100644 --- a/test_plans/loopback_virtio_user_server_mode_test_plan.rst +++ b/test_plans/loopback_virtio_user_server_mode_test_plan.rst @@ -38,6 +38,8 @@ Virtio-user server mode is a feature to enable virtio-user as the server, vhost virtio-user can reconnect back to vhost-user again; at another hand, virtio-user also can reconnect back to vhost-user after virtio-user is killed. This feature test need cover different rx/tx paths with virtio 1.0 and virtio 1.1, includes split ring mergeable, non-mergeable, inorder mergeable, inorder non-mergeable, vector_rx path and packed ring mergeable, non-mergeable, inorder non-mergeable, inorder mergeable, vectorized path. +Split ring and packed ring test when vhost enqueue operation with multi-CBDMA channels. When DMA devices are bound to vfio driver, +VA mode is the default and recommended. For PA mode, page by page mapping may exceed IOMMU's max capability, better to use 1G guest hugepage. Test Case 1: Basic test for packed ring server mode =================================================== @@ -827,16 +829,16 @@ Test Case 12: loopback reconnect test with packed ring vectorized path and serve testpmd>stop -Test Case 13: loopback packed ring and split ring mergeable path payload check test using server mode and multi-queues -====================================================================================================================== +Test Case 13: loopback packed ring all path payload check test using server mode and multi-queues +================================================================================================= 1. launch vhost:: - ././x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 32-33 --no-pci --file-prefix=vhost -n 4 --vdev 'eth_vhost0,iface=vhost-net0,queues=8,client=1' -- -i --nb-cores=1 --rxq=8 --txq=8 --txd=1024 --rxd=1024 + ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 32-33 --no-pci --file-prefix=vhost -n 4 --vdev 'eth_vhost0,iface=vhost-net0,queues=8,client=1' -- -i --nb-cores=1 --rxq=8 --txq=8 --txd=1024 --rxd=1024 2. Launch virtio-user with packed ring mergeable inorder path:: - ././x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 30,31 -n 4 --file-prefix=virtio --no-pci --vdev=net_virtio_user0,mac=00:11:22:33:44:10,path=./vhost-net0,queues=8,mrg_rxbuf=1,in_order=1,packed_vq=1,server=1 -- -i --nb-cores=1 --rxq=8 --txq=8 --txd=1024 --rxd=1024 + ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 30,31 -n 4 --file-prefix=virtio --no-pci --vdev=net_virtio_user0,mac=00:11:22:33:44:10,path=./vhost-net0,queues=8,mrg_rxbuf=1,in_order=1,packed_vq=1,server=1 -- -i --nb-cores=1 --rxq=8 --txq=8 --txd=1024 --rxd=1024 testpmd> set fwd csum testpmd> start @@ -854,42 +856,163 @@ Test Case 13: loopback packed ring and split ring mergeable path payload check t 5. Quit pdump, check all the packets length are 8000 Byte in the pcap file, and the payload in receive packets are same. -6. Quit and relaunch vhost and rerun step3-5. +6. Quit and relaunch vhost and rerun step 3-5. 7. Quit and relaunch virtio with packed ring mergeable path as below:: - ././x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 30,31 -n 4 --file-prefix=virtio-user0 --no-pci --vdev=net_virtio_user0,mac=00:11:22:33:44:10,path=./vhost-net0,queues=8,mrg_rxbuf=1,in_order=0,packed_vq=1,server=1 -- -i --nb-cores=1 --rxq=8 --txq=8 --txd=1024 --rxd=1024 + ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 30,31 -n 4 --file-prefix=virtio-user0 --no-pci \ + --vdev=net_virtio_user0,mac=00:11:22:33:44:10,path=./vhost-net0,queues=8,mrg_rxbuf=1,in_order=0,packed_vq=1,server=1 -- -i --nb-cores=1 --rxq=8 --txq=8 --txd=1024 --rxd=1024 testpmd> set fwd csum testpmd> start -8. Rerun step3-6. +8. Rerun step 3-6. + +9. Quit and relaunch virtio with packed ring non-mergeable path as below:: + + ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 30,31 -n 4 --file-prefix=virtio-user0 --no-pci \ + --vdev=net_virtio_user0,mac=00:11:22:33:44:10,path=./vhost-net0,queues=8,mrg_rxbuf=0,in_order=0,packed_vq=1,server=1 -- -i --nb-cores=1 --rxq=8 --txq=8 --txd=1024 --rxd=1024 + testpmd> set fwd csum + testpmd> start + +10. Rerun step 3. + +11. Send pkts from vhost:: + + testpmd> set fwd csum + testpmd> set txpkts 64,128,256,512 + testpmd> set burst 1 + testpmd> start tx_first 1 + testpmd> stop + +12. Quit pdump, check all the packets length are 960 Byte in the pcap file and the payload in receive packets are same. + +13. Quit and relaunch vhost and rerun step 10-12. + +14. Quit and relaunch virtio with packed ring inorder non-mergeable path as below:: + + ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 30,31 -n 4 --file-prefix=virtio-user0 --no-pci \ + --vdev=net_virtio_user0,mac=00:11:22:33:44:10,path=./vhost-net0,queues=8,mrg_rxbuf=0,in_order=1,packed_vq=1,server=1 -- -i --nb-cores=1 --rxq=8 --txq=8 --txd=1024 --rxd=1024 + testpmd> set fwd csum + testpmd> start + +15. Rerun step 10-13. + +16. Quit and relaunch virtio with packed ring vectorized path as below:: + + ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 30,31 -n 4 --file-prefix=virtio-user0 --no-pci --force-max-simd-bitwidth=512 \ + --vdev=net_virtio_user0,mac=00:11:22:33:44:10,path=./vhost-net0,queues=8,mrg_rxbuf=0,in_order=1,vectorized=1,packed_vq=1,server=1 -- -i --nb-cores=1 --rxq=8 --txq=8 --txd=1024 --rxd=1024 + testpmd> set fwd csum + testpmd> start + +17 Rerun step 10-13. + +18. Quit and relaunch virtio with packed ring vectorized path and ring size is not power of 2 as below:: + + ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 30,31 -n 4 --file-prefix=virtio-user0 --no-pci --force-max-simd-bitwidth=512 \ + --vdev=net_virtio_user0,mac=00:11:22:33:44:10,path=./vhost-net0,queues=8,mrg_rxbuf=0,in_order=1,vectorized=1,packed_vq=1,queue_size=1025,server=1 \ + -- -i --nb-cores=1 --rxq=8 --txq=8 --txd=1025 --rxd=1025 + testpmd> set fwd csum + testpmd> start + +19. Rerun step 10-13. + +Test Case 14: loopback split ring all path payload check test using server mode and multi-queues +================================================================================================ + +1. Launch vhost:: + + ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 32-33 --no-pci --file-prefix=vhost -n 4 --vdev 'eth_vhost0,iface=vhost-net0,queues=8,client=1' -- -i --nb-cores=1 --rxq=8 --txq=8 --txd=1024 --rxd=1024 + +2. Launch virtio-user with split ring mergeable inorder path:: + + ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 30,31 -n 4 --file-prefix=virtio-user0 --no-pci \ + --vdev=net_virtio_user0,mac=00:11:22:33:44:10,path=./vhost-net0,queues=8,mrg_rxbuf=1,in_order=1,server=1 \ + -- -i --nb-cores=1 --rxq=8 --txq=8 --txd=1024 --rxd=1024 + testpmd>set fwd csum + testpmd>start + +3. Attach pdump secondary process to primary process by same file-prefix:: + + ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -v --file-prefix=virtio-user0 -- --pdump 'device_id=net_virtio_user0,queue=*,rx-dev=./pdump-virtio-rx.pcap,mbuf-size=8000' + +4. Send large pkts from vhost:: + + testpmd> set fwd csum + testpmd> set txpkts 2000,2000,2000,2000 + testpmd> set burst 1 + testpmd> start tx_first 1 + testpmd> stop + +5. Quit pdump, check all the packets length are 8000 Byte in the pcap file and the payload in receive packets are same. -9. Quit and relaunch virtio with split ring mergeable inorder path as below:: +6. Quit and relaunch vhost and rerun step3-5. - ././x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 30,31 -n 4 --file-prefix=virtio-user0 --no-pci --vdev=net_virtio_user0,mac=00:11:22:33:44:10,path=./vhost-net0,queues=8,mrg_rxbuf=1,in_order=1,server=1 -- -i --nb-cores=1 --rxq=8 --txq=8 --txd=1024 --rxd=1024 +7. Quit and relaunch virtio with split ring mergeable path as below:: + + ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 30,31 -n 4 --file-prefix=virtio-user0 --no-pci \ + --vdev=net_virtio_user0,mac=00:11:22:33:44:10,path=./vhost-net0,queues=8,mrg_rxbuf=1,in_order=0,server=1 \ + -- -i --nb-cores=1 --rxq=8 --txq=8 --txd=1024 --rxd=1024 testpmd>set fwd csum testpmd>start -10. Rerun step3-6. +8. Rerun steps 3-6. + +9. Quit and relaunch virtio with split ring non-mergeable path as below:: + + ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 30,31 -n 4 --file-prefix=virtio-user0 --no-pci \ + --vdev=net_virtio_user0,mac=00:11:22:33:44:10,path=./vhost-net0,queues=8,mrg_rxbuf=0,in_order=0,server=1 \ + -- -i --enable-hw-vlan-strip --nb-cores=1 --rxq=8 --txq=8 --txd=1024 --rxd=1024 + testpmd>set fwd csum + testpmd>start -11. Quit and relaunch virtio with split ring mergeable path as below:: +10. Rerun step 3. - ././x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 30,31 -n 4 --file-prefix=virtio-user0 --no-pci --vdev=net_virtio_user0,mac=00:11:22:33:44:10,path=./vhost-net0,queues=8,mrg_rxbuf=1,in_order=0,server=1 -- -i --nb-cores=1 --rxq=8 --txq=8 --txd=1024 --rxd=1024 - testpmd> set fwd csum - testpmd> start +11. Send pkts from vhost:: -12. Rerun step3-6. + testpmd> set fwd csum + testpmd> set txpkts 64,128,256,512 + testpmd> set burst 1 + testpmd> start tx_first 1 + testpmd> stop -Test Case 14: loopback packed ring and split ring mergeable path cbdma test payload check with server mode and multi-queues -=========================================================================================================================== +12. Quit pdump, check all the packets length are 960 Byte in the pcap file and the payload in receive packets are same. + +13. Quit and relaunch vhost and rerun step 10-12. + +14. Quit and relaunch virtio with split ring inorder non-mergeable path as below:: + + ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 30,31 -n 4 --file-prefix=virtio-user0 --no-pci \ + --vdev=net_virtio_user0,mac=00:11:22:33:44:10,path=./vhost-net0,queues=8,mrg_rxbuf=0,in_order=1,server=1 \ + -- -i --nb-cores=1 --rxq=8 --txq=8 --txd=1024 --rxd=1024 + testpmd>set fwd csum + testpmd>start + +15. Rerun step 10-13. + +16. Quit and relaunch virtio with split ring vectorized path as below:: + + ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 30,31 -n 4 --file-prefix=virtio-user0 --no-pci \ + --vdev=net_virtio_user0,mac=00:11:22:33:44:10,path=./vhost-net0,queues=8,mrg_rxbuf=0,in_order=0,vectorized=1,server=1 \ + -- -i --nb-cores=1 --rxq=8 --txq=8 --txd=1024 --rxd=1024 + testpmd>set fwd csum + testpmd>start + +17. Rerun step 10-13. + +Test Case 15: loopback packed ring all path cbdma test payload check with server mode and multi-queues +====================================================================================================== 1. bind 8 cbdma port to vfio-pci and launch vhost:: - ././x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 32-33 -n 4 --vdev 'eth_vhost0,iface=vhost-net0,queues=8,client=1,dmas=[txq0@0000:80:04.0;txq1@0000:80:04.1;txq2@0000:80:04.2;txq3@0000:80:04.3;txq4@0000:80:04.4;txq5@0000:80:04.5;txq6@0000:80:04.6;txq7@0000:80:04.7]' -- -i --nb-cores=1 --rxq=8 --txq=8 --txd=1024 --rxd=1024 + ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 32-33 -n 4 \ + --vdev 'eth_vhost0,iface=vhost-net0,queues=8,client=1,dmas=[txq0@0000:80:04.0;txq1@0000:80:04.1;txq2@0000:80:04.2;txq3@0000:80:04.3;txq4@0000:80:04.4;txq5@0000:80:04.5;txq6@0000:80:04.6;txq7@0000:80:04.7]' \ + --iova=va -- -i --nb-cores=1 --rxq=8 --txq=8 --txd=1024 --rxd=1024 2. Launch virtio-user with packed ring mergeable inorder path:: - ././x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 30,31 -n 4 --file-prefix=virtio-user0 --no-pci --vdev=net_virtio_user0,mac=00:11:22:33:44:10,path=./vhost-net0,queues=8,mrg_rxbuf=1,in_order=1,packed_vq=1,server=1 -- -i --nb-cores=1 --rxq=8 --txq=8 --txd=1024 --rxd=1024 + ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 30,31 -n 4 --file-prefix=virtio-user0 --no-pci \ + --vdev=net_virtio_user0,mac=00:11:22:33:44:10,path=./vhost-net0,queues=8,mrg_rxbuf=1,in_order=1,packed_vq=1,server=1 + -- -i --nb-cores=1 --rxq=8 --txq=8 --txd=1024 --rxd=1024 testpmd>set fwd csum testpmd>start @@ -902,7 +1025,8 @@ Test Case 14: loopback packed ring and split ring mergeable path cbdma test payl testpmd> vhost enable tx all testpmd> set fwd csum testpmd> set txpkts 64,64,64,2000,2000,2000 - testpmd> start tx_first 32 + testpmd> set burst 1 + testpmd> start tx_first 1 testpmd> stop 5. Quit pdump, check all the packets length are 6192 Byte in the pcap file, and the payload in receive packets are same. @@ -911,30 +1035,166 @@ Test Case 14: loopback packed ring and split ring mergeable path cbdma test payl 7. Quit and relaunch virtio with packed ring mergeable path as below:: - ././x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 30,31 -n 4 --file-prefix=testpmd0 --no-pci --vdev=net_virtio_user0,mac=00:11:22:33:44:10,path=./vhost-net0,queues=8,mrg_rxbuf=1,in_order=0,packed_vq=1,server=1 -- -i --nb-cores=1 --rxq=8 --txq=8 --txd=1024 --rxd=1024 + ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 30,31 -n 4 --file-prefix=virtio-user0 --no-pci \ + --vdev=net_virtio_user0,mac=00:11:22:33:44:10,path=./vhost-net0,queues=8,mrg_rxbuf=1,in_order=0,packed_vq=1,server=1 \ + -- -i --nb-cores=1 --rxq=8 --txq=8 --txd=1024 --rxd=1024 testpmd>set fwd csum testpmd>start -8. Rerun step3-6. +8. Rerun steps 3-6. -9. Quit and relaunch virtio with split ring mergeable inorder path as below:: +9. Quit and relaunch virtio with packed ring non-mergeable path as below:: - ././x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 30,31 -n 4 --file-prefix=testpmd0 --no-pci --vdev=net_virtio_user0,mac=00:11:22:33:44:10,path=./vhost-net0,queues=8,mrg_rxbuf=1,in_order=1,server=1 -- -i --nb-cores=1 --rxq=8 --txq=8 --txd=1024 --rxd=1024 + ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 30,31 -n 4 --file-prefix=virtio-user0 --no-pci \ + --vdev=net_virtio_user0,mac=00:11:22:33:44:10,path=./vhost-net0,queues=8,mrg_rxbuf=0,in_order=0,packed_vq=1,server=1 \ + -- -i --nb-cores=1 --rxq=8 --txq=8 --txd=1024 --rxd=1024 testpmd>set fwd csum testpmd>start -10. Rerun step3-6. +10. Rerun step 3. -11. Quit and relaunch virtio with split ring mergeable path as below:: +11. Send pkts from vhost:: - ././x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 30,31 -n 4 --file-prefix=testpmd0 --no-pci --vdev=net_virtio_user0,mac=00:11:22:33:44:10,path=./vhost-net0,queues=8,mrg_rxbuf=1,in_order=0,server=1 -- -i --nb-cores=1 --rxq=8 --txq=8 --txd=1024 --rxd=1024 - testpmd> set fwd csum - testpmd> start + testpmd> vhost enable tx all + testpmd> set fwd csum + testpmd> set txpkts 64,128,256,512 + testpmd> set burst 1 + testpmd> start tx_first 1 + testpmd> stop + +12. Quit pdump, check all the packets length are 960 Byte in the pcap file and the payload in receive packets are same. + +13. Quit and relaunch vhost and rerun step 10-12. + +14. Quit and relaunch virtio with packed ring inorder non-mergeable path as below:: + + ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 30,31 -n 4 --file-prefix=virtio-user0 --no-pci \ + --vdev=net_virtio_user0,mac=00:11:22:33:44:10,path=./vhost-net0,queues=8,mrg_rxbuf=0,in_order=1,packed_vq=1,server=1 \ + -- -i --nb-cores=1 --rxq=8 --txq=8 --txd=1024 --rxd=1024 + testpmd>set fwd csum + testpmd>start + +15. Rerun step 10-13. + +16. Quit and relaunch virtio with packed ring vectorized path as below:: + + ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 30,31 -n 4 --file-prefix=virtio-user0 --no-pci --force-max-simd-bitwidth=512 \ + --vdev=net_virtio_user0,mac=00:11:22:33:44:10,path=./vhost-net0,queues=8,mrg_rxbuf=0,in_order=1,packed_vq=1,vectorized=1,server=1 \ + -- -i --nb-cores=1 --rxq=8 --txq=8 --txd=1024 --rxd=1024 + testpmd>set fwd csum + testpmd>start + +17. Rerun step 10-13. + +18. Quit and relaunch virtio with packed ring vectorized path and ring size is not power of 2 as below:: + + ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 30,31 -n 4 --file-prefix=virtio-user0 --no-pci --force-max-simd-bitwidth=512 \ + --vdev=net_virtio_user0,mac=00:11:22:33:44:10,path=./vhost-net0,queues=8,mrg_rxbuf=0,in_order=1,packed_vq=1,vectorized=1,queue_size=1025,server=1 \ + -- -i --nb-cores=1 --rxq=8 --txq=8 --txd=1025 --rxd=1025 + testpmd>set fwd csum + testpmd>start + +19. Rerun step 10-13. + +20. Quit and relaunch vhost w/ iova=pa:: + + ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 2-3 --file-prefix=vhost -n 4 \ + --vdev 'eth_vhost0,iface=vhost-net0,queues=8,client=1,dmas=[txq0@0000:00:04.0;txq1@0000:00:04.1;txq2@0000:00:04.2;txq3@0000:00:04.3;txq4@0000:00:04.4;txq5@0000:00:04.5;txq6@0000:00:04.6;txq7@0000:00:04.7]' \ + --iova=pa -- -i --nb-cores=1 --rxq=8 --txq=8 --txd=1024 --rxd=1024 + +21. Quit virtio and rerun steps 2-19. + +Test Case 16: loopback split ring all path cbdma test payload check with server mode and multi-queues +===================================================================================================== + +1. bind 8 cbdma port to vfio-pci and launch vhost:: + + ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 32-33 -n 4 \ + --vdev 'eth_vhost0,iface=vhost-net0,queues=8,client=1,dmas=[txq0@0000:80:04.0;txq1@0000:80:04.1;txq2@0000:80:04.2;txq3@0000:80:04.3;txq4@0000:80:04.4;txq5@0000:80:04.5;txq6@0000:80:04.6;txq7@0000:80:04.7]' \ + --iova=va -- -i --nb-cores=1 --rxq=8 --txq=8 --txd=1024 --rxd=1024 + +2. Launch virtio-user with split ring mergeable inorder path:: + + ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 30,31 -n 4 --file-prefix=virtio-user0 --no-pci \ + --vdev=net_virtio_user0,mac=00:11:22:33:44:10,path=./vhost-net0,queues=8,mrg_rxbuf=1,in_order=1,server=1 \ + -- -i --nb-cores=1 --rxq=8 --txq=8 --txd=1024 --rxd=1024 + testpmd>set fwd csum + testpmd>start + +3. Attach pdump secondary process to primary process by same file-prefix:: + + ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -v --file-prefix=virtio-user0 -- --pdump 'device_id=net_virtio_user0,queue=*,rx-dev=./pdump-virtio-rx.pcap,mbuf-size=8000' + +4. Send large pkts from vhost:: + + testpmd> vhost enable tx all + testpmd> set fwd csum + testpmd> set txpkts 64,64,64,2000,2000,2000 + testpmd> set burst 1 + testpmd> start tx_first 1 + testpmd> stop + +5. Quit pdump, check all the packets length are 6192 Byte in the pcap file and the payload in receive packets are same. + +6. Quit and relaunch vhost and rerun step3-5. + +7. Quit and relaunch virtio with split ring mergeable path as below:: + + ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 30,31 -n 4 --file-prefix=virtio-user0 --no-pci \ + --vdev=net_virtio_user0,mac=00:11:22:33:44:10,path=./vhost-net0,queues=8,mrg_rxbuf=1,in_order=0,server=1 \ + -- -i --nb-cores=1 --rxq=8 --txq=8 --txd=1024 --rxd=1024 + testpmd>set fwd csum + testpmd>start + +8. Rerun steps 3-6. + +9. Quit and relaunch virtio with split ring non-mergeable path as below:: + + ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 30,31 -n 4 --file-prefix=virtio-user0 --no-pci \ + --vdev=net_virtio_user0,mac=00:11:22:33:44:10,path=./vhost-net0,queues=8,mrg_rxbuf=0,in_order=0,server=1 \ + -- -i --enable-hw-vlan-strip --nb-cores=1 --rxq=8 --txq=8 --txd=1024 --rxd=1024 + testpmd>set fwd csum + testpmd>start + +10. Rerun step 3. + +11. Send pkts from vhost:: + + testpmd> vhost enable tx all + testpmd> set fwd csum + testpmd> set txpkts 64,128,256,512 + testpmd> set burst 1 + testpmd> start tx_first 1 + testpmd> stop + +12. Quit pdump, check all the packets length are 960 Byte in the pcap file and the payload in receive packets are same. + +13. Quit and relaunch vhost and rerun step 10-12. + +14. Quit and relaunch virtio with split ring inorder non-mergeable path as below:: + + ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 30,31 -n 4 --file-prefix=virtio-user0 --no-pci \ + --vdev=net_virtio_user0,mac=00:11:22:33:44:10,path=./vhost-net0,queues=8,mrg_rxbuf=0,in_order=1,server=1 \ + -- -i --nb-cores=1 --rxq=8 --txq=8 --txd=1024 --rxd=1024 + testpmd>set fwd csum + testpmd>start + +15. Rerun step 10-13. + +16. Quit and relaunch virtio with split ring vectorized path as below:: + + ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 30,31 -n 4 --file-prefix=virtio-user0 --no-pci \ + --vdev=net_virtio_user0,mac=00:11:22:33:44:10,path=./vhost-net0,queues=8,mrg_rxbuf=0,in_order=0,vectorized=1,server=1 \ + -- -i --nb-cores=1 --rxq=8 --txq=8 --txd=1024 --rxd=1024 + testpmd>set fwd csum + testpmd>start -12. Rerun step3-6. +17. Rerun step 10-13. -13. Quit and relaunch vhost w/ iova=pa:: +18. Quit and relaunch vhost w/ iova=pa:: - ././x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 2-3 --file-prefix=vhost -n 4 --vdev 'eth_vhost0,iface=vhost-net0,queues=8,client=1,dmas=[txq0@0000:00:04.0;txq1@0000:00:04.1;txq2@0000:00:04.2;txq3@0000:00:04.3;txq4@0000:00:04.4;txq5@0000:00:04.5;txq6@0000:00:04.6;txq7@0000:00:04.7]' --iova=pa -- -i --nb-cores=1 --rxq=8 --txq=8 --txd=1024 --rxd=1024 + ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 2-3 --file-prefix=vhost -n 4 \ + --vdev 'eth_vhost0,iface=vhost-net0,queues=8,client=1,dmas=[txq0@0000:00:04.0;txq1@0000:00:04.1;txq2@0000:00:04.2;txq3@0000:00:04.3;txq4@0000:00:04.4;txq5@0000:00:04.5;txq6@0000:00:04.6;txq7@0000:00:04.7]' \ + --iova=pa -- -i --nb-cores=1 --rxq=8 --txq=8 --txd=1024 --rxd=1024 -14. rerun step3-5. +19. Quit virtio and rerun steps 2-17. -- 2.25.1
1. Case13 is split into case13 and case14 (split ring and packed ring all path multi queue; CPU copy) 2. Case14 is split into case15 and case16 (split ring and packed ring all path multi queue and iova = VA / PA; cbdma copy) Signed-off-by: Lingli Chen <linglix.chen@intel.com> --- ...tSuite_loopback_virtio_user_server_mode.py | 266 ++++++++++++++++-- 1 file changed, 240 insertions(+), 26 deletions(-) diff --git a/tests/TestSuite_loopback_virtio_user_server_mode.py b/tests/TestSuite_loopback_virtio_user_server_mode.py index 7764c7ed..83e551b3 100644 --- a/tests/TestSuite_loopback_virtio_user_server_mode.py +++ b/tests/TestSuite_loopback_virtio_user_server_mode.py @@ -103,7 +103,7 @@ class TestLoopbackVirtioUserServerMode(TestCase): def lanuch_virtio_user_testpmd(self, args, set_fwd_mac=True, expected='testpmd> '): """ - start testpmd of vhost user + start testpmd of virtio user """ eal_param = "--vdev 'net_virtio_user0,mac=00:01:02:03:04:05,path=vhost-net,server=1,queues=1,{}'".format(args["version"]) if self.check_2M_env: @@ -126,15 +126,17 @@ class TestLoopbackVirtioUserServerMode(TestCase): if set_fwd_mac: self.vhost_pmd.execute_cmd("set fwd mac", "testpmd> ", 120) - def lanuch_virtio_user_testpmd_with_multi_queue(self, mode, extern_params="", set_fwd_mac=True): + def lanuch_virtio_user_testpmd_with_multi_queue(self, mode, extern_params="", set_fwd_mac=True, vectorized_path=False): """ - start testpmd of vhost user + start testpmd of virtio user """ eal_param = "--vdev 'net_virtio_user0,mac=00:01:02:03:04:05,path=vhost-net,server=1,queues={},{}'".format(self.queue_number, mode) if self.check_2M_env: eal_param += " --single-file-segments" if 'vectorized_path' in self.running_case: eal_param += " --force-max-simd-bitwidth=512" + if vectorized_path: + eal_param += " --force-max-simd-bitwidth=512" param = "{} --nb-cores={} --rxq={} --txq={}".format(extern_params, self.nb_cores, self.queue_number, self.queue_number) self.virtio_user_pmd.start_testpmd(cores=self.core_list_user, param=param, eal_param=eal_param, \ no_pci=True, ports=[], prefix="virtio", fixed_prefix=True) @@ -166,16 +168,29 @@ class TestLoopbackVirtioUserServerMode(TestCase): session_tx.send_expect("set txpkts 2000,2000,2000,2000", "testpmd> ", 30) session_tx.send_expect("set burst 1", "testpmd> ", 30) session_tx.send_expect("start tx_first 1", "testpmd> ", 10) - session_tx.send_expect("stop", "testpmd> ", 30) + session_tx.send_expect("stop", "testpmd> ", 10) + + def start_to_send_960_packets_csum(self, session_tx, cbdma=False): + """ + start the testpmd of vhost-user, start to send 8k packets + """ + if cbdma: + session_tx.send_expect("vhost enable tx all", "testpmd> ", 10) + session_tx.send_expect("set fwd csum", "testpmd> ", 10) + session_tx.send_expect("set txpkts 64,128,256,512", "testpmd> ", 10) + session_tx.send_expect("set burst 1", "testpmd> ", 10) + session_tx.send_expect("start tx_first 1", "testpmd> ", 3) + session_tx.send_expect("stop", "testpmd> ", 10) - def start_to_send_8k_packets_csum_cbdma(self, session_tx): + def start_to_send_6192_packets_csum_cbdma(self, session_tx): """ start the testpmd of vhost-user, start to send 8k packets """ session_tx.send_expect("vhost enable tx all", "testpmd> ", 30) session_tx.send_expect("set fwd csum", "testpmd> ", 30) session_tx.send_expect("set txpkts 64,64,64,2000,2000,2000", "testpmd> ", 30) - session_tx.send_expect("start tx_first 32", "testpmd> ", 5) + session_tx.send_expect("set burst 1", "testpmd> ", 30) + session_tx.send_expect("start tx_first 1", "testpmd> ", 5) session_tx.send_expect("stop", "testpmd> ", 30) def check_port_throughput_after_port_stop(self): @@ -244,7 +259,7 @@ class TestLoopbackVirtioUserServerMode(TestCase): "--pdump 'device_id=%s,queue=*,rx-dev=%s,mbuf-size=8000'" self.pdump_session.send_expect(cmd % (dump_port, self.dump_pcap), 'Port') - def check_packet_payload_valid(self, pkt_len, queue_number): + def check_packet_payload_valid(self, pkt_len): """ check the payload is valid """ @@ -261,7 +276,7 @@ class TestLoopbackVirtioUserServerMode(TestCase): self.verify(check_data == expect_data, "the payload in receive packets has been changed from %s" %i) self.dut.send_expect("rm -rf %s" % self.dump_pcap, "#") - def relanuch_vhost_testpmd_send_8k_packets(self, extern_params, cbdma=False, iova='va'): + def relanuch_vhost_testpmd_send_packets(self, extern_params, cbdma=False, iova='va'): self.vhost_pmd.execute_cmd("quit", "#", 60) self.logger.info('now reconnet from vhost') @@ -271,10 +286,22 @@ class TestLoopbackVirtioUserServerMode(TestCase): self.lanuch_vhost_testpmd_with_multi_queue(extern_params=extern_params, set_fwd_mac=False) self.launch_pdump_to_capture_pkt(self.vuser0_port) if cbdma: - self.start_to_send_8k_packets_csum_cbdma(self.vhost) + self.start_to_send_6192_packets_csum_cbdma(self.vhost) else: self.start_to_send_8k_packets_csum(self.vhost) - self.check_packet_payload_valid(self.pkt_len, self.queue_number) + self.check_packet_payload_valid(self.pkt_len) + + def relanuch_vhost_testpmd_send_960_packets(self, extern_params, cbdma=False, iova='va'): + + self.vhost_pmd.execute_cmd("quit", "#", 60) + self.logger.info('now reconnet from vhost') + if cbdma: + self.lanuch_vhost_testpmd_with_cbdma(extern_params=extern_params, iova=iova) + else: + self.lanuch_vhost_testpmd_with_multi_queue(extern_params=extern_params, set_fwd_mac=False) + self.launch_pdump_to_capture_pkt(self.vuser0_port) + self.start_to_send_960_packets_csum(self.vhost,cbdma=cbdma) + self.check_packet_payload_valid(pkt_len=960) def relanuch_virtio_testpmd_with_multi_path(self, mode, case_info, extern_params, cbdma=False, iova="va"): @@ -285,12 +312,26 @@ class TestLoopbackVirtioUserServerMode(TestCase): self.virtio_user_pmd.execute_cmd("start") self.launch_pdump_to_capture_pkt(self.vuser0_port) if cbdma: - self.start_to_send_8k_packets_csum_cbdma(self.vhost) + self.start_to_send_6192_packets_csum_cbdma(self.vhost) else: self.start_to_send_8k_packets_csum(self.vhost) - self.check_packet_payload_valid(self.pkt_len, self.queue_number) + self.check_packet_payload_valid(self.pkt_len) + + self.relanuch_vhost_testpmd_send_packets(extern_params, cbdma, iova=iova) + + def relanuch_virtio_testpmd_with_non_mergeable_path(self, mode, case_info, extern_params, cbdma=False, iova="va", vectorized_path=False): + + self.virtio_user_pmd.execute_cmd("quit", "#", 60) + self.logger.info(case_info) + self.lanuch_virtio_user_testpmd_with_multi_queue(mode=mode, extern_params=extern_params, set_fwd_mac=False,vectorized_path=vectorized_path) + self.virtio_user_pmd.execute_cmd("set fwd csum") + self.virtio_user_pmd.execute_cmd("start") + self.launch_pdump_to_capture_pkt(self.vuser0_port) - self.relanuch_vhost_testpmd_send_8k_packets(extern_params, cbdma, iova=iova) + self.start_to_send_960_packets_csum(self.vhost,cbdma=cbdma) + self.check_packet_payload_valid(pkt_len=960) + + self.relanuch_vhost_testpmd_send_960_packets(extern_params, cbdma, iova=iova) def relanuch_vhost_testpmd_with_multi_queue(self): self.vhost_pmd.execute_cmd("quit", "#", 60) @@ -741,9 +782,9 @@ class TestLoopbackVirtioUserServerMode(TestCase): self.check_packets_of_each_queue() self.close_all_testpmd() - def test_server_mode_reconnect_with_packed_and_split_mergeable_path_payload_check(self): + def test_server_mode_reconnect_with_packed_all_path_payload_check(self): """ - Test Case 13: loopback packed ring and split ring mergeable path payload check test using server mode and multi-queues + Test Case 13: loopback packed ring all path payload check test using server mode and multi-queues """ self.queue_number = 8 self.nb_cores = 1 @@ -763,10 +804,10 @@ class TestLoopbackVirtioUserServerMode(TestCase): #5. Check all the packets length is 8000 Byte in the pcap file self.pkt_len = 8000 - self.check_packet_payload_valid(self.pkt_len, self.queue_number) + self.check_packet_payload_valid(self.pkt_len) # reconnet from vhost - self.relanuch_vhost_testpmd_send_8k_packets(extern_params) + self.relanuch_vhost_testpmd_send_packets(extern_params) # reconnet from virtio self.logger.info('now reconnet from virtio_user with other path') @@ -774,19 +815,76 @@ class TestLoopbackVirtioUserServerMode(TestCase): mode = "mrg_rxbuf=1,in_order=0,packed_vq=1" self.relanuch_virtio_testpmd_with_multi_path(mode, case_info, extern_params) + case_info = 'packed ring non-mergeable path' + mode = "mrg_rxbuf=0,in_order=0,packed_vq=1" + self.relanuch_virtio_testpmd_with_non_mergeable_path(mode, case_info, extern_params) + + case_info = 'packed ring inorder non-mergeable path' + mode = "mrg_rxbuf=0,in_order=1,packed_vq=1" + self.relanuch_virtio_testpmd_with_non_mergeable_path(mode, case_info, extern_params) + + case_info = 'packed ring vectorized path' + mode = "mrg_rxbuf=0,in_order=1,packed_vq=1,vectorized=1" + self.relanuch_virtio_testpmd_with_non_mergeable_path(mode, case_info, extern_params,vectorized_path=True) + + case_info = 'packed ring vectorized path and ring size is not power of 2' + mode = "mrg_rxbuf=0,in_order=1,packed_vq=1,vectorized=1,queue_size=1025" + extern_param = '--txd=1025 --rxd=1025' + self.relanuch_virtio_testpmd_with_non_mergeable_path(mode, case_info, extern_param,vectorized_path=True) + + self.close_all_testpmd() + + def test_server_mode_reconnect_with_split_all_path_payload_check(self): + """ + Test Case 14: loopback split ring all path payload check test using server mode and multi-queues + """ + self.queue_number = 8 + self.nb_cores = 1 + extern_params = '--txd=1024 --rxd=1024' case_info = 'split ring mergeable inorder path' mode = "mrg_rxbuf=1,in_order=1" - self.relanuch_virtio_testpmd_with_multi_path(mode, case_info, extern_params) + self.lanuch_vhost_testpmd_with_multi_queue(extern_params=extern_params, set_fwd_mac=False) + self.logger.info(case_info) + self.lanuch_virtio_user_testpmd_with_multi_queue(mode=mode, extern_params=extern_params, set_fwd_mac=False) + self.virtio_user_pmd.execute_cmd("set fwd csum") + self.virtio_user_pmd.execute_cmd("start") + #3. Attach pdump secondary process to primary process by same file-prefix:: + self.vuser0_port = 'net_virtio_user0' + self.launch_pdump_to_capture_pkt(self.vuser0_port) + self.start_to_send_8k_packets_csum(self.vhost) + + #5. Check all the packets length is 8000 Byte in the pcap file + self.pkt_len = 8000 + self.check_packet_payload_valid(self.pkt_len) + + # reconnet from vhost + self.relanuch_vhost_testpmd_send_packets(extern_params) + + # reconnet from virtio + self.logger.info('now reconnet from virtio_user with other path') case_info = 'split ring mergeable path' mode = "mrg_rxbuf=1,in_order=0" self.relanuch_virtio_testpmd_with_multi_path(mode, case_info, extern_params) + case_info = 'split ring non-mergeable path' + mode = "mrg_rxbuf=0,in_order=0" + extern_param = extern_params + ' --enable-hw-vlan-strip' + self.relanuch_virtio_testpmd_with_non_mergeable_path(mode, case_info, extern_param) + + case_info = 'split ring inorder non-mergeable path' + mode = "mrg_rxbuf=0,in_order=1" + self.relanuch_virtio_testpmd_with_non_mergeable_path(mode, case_info, extern_params) + + case_info = 'split ring vectorized path' + mode = "mrg_rxbuf=0,in_order=0,vectorized=1" + self.relanuch_virtio_testpmd_with_non_mergeable_path(mode, case_info, extern_params) + self.close_all_testpmd() - def test_server_mode_reconnect_with_packed_and_split_mergeable_path_cbdma_payload_check(self): + def test_server_mode_reconnect_with_packed_all_path_cbdma_payload_check(self): """ - Test Case 14: loopback packed ring and split ring mergeable path cbdma test payload check with server mode and multi-queues + Test Case 15: loopback packed ring all path cbdma test payload check with server mode and multi-queues """ self.cbdma_nic_dev_num = 8 self.get_cbdma_ports_info_and_bind_to_dpdk() @@ -806,13 +904,13 @@ class TestLoopbackVirtioUserServerMode(TestCase): # 3. Attach pdump secondary process to primary process by same file-prefix:: self.vuser0_port = 'net_virtio_user0' self.launch_pdump_to_capture_pkt(self.vuser0_port) - self.start_to_send_8k_packets_csum_cbdma(self.vhost) + self.start_to_send_6192_packets_csum_cbdma(self.vhost) # 5. Check all the packets length is 6192 Byte in the pcap file self.pkt_len = 6192 - self.check_packet_payload_valid(self.pkt_len, self.queue_number) + self.check_packet_payload_valid(self.pkt_len) #reconnet from vhost - self.relanuch_vhost_testpmd_send_8k_packets(extern_params, cbdma=True) + self.relanuch_vhost_testpmd_send_packets(extern_params, cbdma=True) # reconnet from virtio self.logger.info('now reconnet from virtio_user with other path') @@ -820,19 +918,135 @@ class TestLoopbackVirtioUserServerMode(TestCase): mode = "mrg_rxbuf=1,in_order=0,packed_vq=1" self.relanuch_virtio_testpmd_with_multi_path(mode, case_info, extern_params, cbdma=True) + case_info = 'packed ring non-mergeable path' + mode = "mrg_rxbuf=0,in_order=0,packed_vq=1" + self.relanuch_virtio_testpmd_with_non_mergeable_path(mode, case_info, extern_params, cbdma=True) + + case_info = 'packed ring inorder non-mergeable path' + mode = "mrg_rxbuf=0,in_order=1,packed_vq=1" + self.relanuch_virtio_testpmd_with_non_mergeable_path(mode, case_info, extern_params, cbdma=True) + + case_info = 'packed ring vectorized path' + mode = "mrg_rxbuf=0,in_order=1,packed_vq=1,vectorized=1" + self.relanuch_virtio_testpmd_with_non_mergeable_path(mode, case_info, extern_params, cbdma=True, vectorized_path=True) + + case_info = 'packed ring vectorized path and ring size is not power of 2' + mode = "mrg_rxbuf=0,in_order=1,packed_vq=1,vectorized=1,queue_size=1025" + extern_param = '--txd=1025 --rxd=1025' + self.relanuch_virtio_testpmd_with_non_mergeable_path(mode, case_info, extern_param, cbdma=True, vectorized_path=True) + + if not self.check_2M_env: + self.relanuch_vhost_testpmd_iova_pa( extern_params=extern_params) + + self.close_all_testpmd() + + def test_server_mode_reconnect_with_split_all_path_cbdma_payload_check(self): + """ + Test Case 16: loopback split ring all path cbdma test payload check with server mode and multi-queues + """ + self.cbdma_nic_dev_num = 8 + self.get_cbdma_ports_info_and_bind_to_dpdk() + self.queue_number = 8 + self.vdev = f"--vdev 'eth_vhost0,iface=vhost-net,queues={self.queue_number},client=1,dmas=[txq0@{self.cbdma_dev_infos[0]};txq1@{self.cbdma_dev_infos[1]};txq2@{self.cbdma_dev_infos[2]};txq3@{self.cbdma_dev_infos[3]};txq4@{self.cbdma_dev_infos[4]};txq5@{self.cbdma_dev_infos[5]};txq6@{self.cbdma_dev_infos[6]};txq7@{self.cbdma_dev_infos[7]}]' " + + self.nb_cores = 1 + extern_params = '--txd=1024 --rxd=1024' case_info = 'split ring mergeable inorder path' mode = "mrg_rxbuf=1,in_order=1" - self.relanuch_virtio_testpmd_with_multi_path(mode, case_info, extern_params, cbdma=True) + self.lanuch_vhost_testpmd_with_cbdma(extern_params=extern_params) + self.logger.info(case_info) + self.lanuch_virtio_user_testpmd_with_multi_queue(mode=mode, extern_params=extern_params, set_fwd_mac=False) + self.virtio_user_pmd.execute_cmd("set fwd csum") + self.virtio_user_pmd.execute_cmd("start") + # 3. Attach pdump secondary process to primary process by same file-prefix:: + self.vuser0_port = 'net_virtio_user0' + self.launch_pdump_to_capture_pkt(self.vuser0_port) + self.start_to_send_6192_packets_csum_cbdma(self.vhost) + + # 5. Check all the packets length is 6192 Byte in the pcap file + self.pkt_len = 6192 + self.check_packet_payload_valid(self.pkt_len) + #reconnet from vhost + self.relanuch_vhost_testpmd_send_packets(extern_params, cbdma=True) + + # reconnet from virtio + self.logger.info('now reconnet from virtio_user with other path') case_info = 'split ring mergeable path' mode = "mrg_rxbuf=1,in_order=0" self.relanuch_virtio_testpmd_with_multi_path(mode, case_info, extern_params, cbdma=True) - self.logger.info('now relaunch vhost iova=pa') - self.relanuch_vhost_testpmd_send_8k_packets(extern_params, cbdma=True, iova='pa') + case_info = 'split ring non-mergeable path' + mode = "mrg_rxbuf=0,in_order=0" + extern_param = extern_params + ' --enable-hw-vlan-strip' + self.relanuch_virtio_testpmd_with_non_mergeable_path(mode, case_info, extern_param, cbdma=True) + + case_info = 'split ring inorder non-mergeable path' + mode = "mrg_rxbuf=0,in_order=1" + self.relanuch_virtio_testpmd_with_non_mergeable_path(mode, case_info, extern_params, cbdma=True) + + case_info = 'split ring vectorized path' + mode = "mrg_rxbuf=0,in_order=0,vectorized=1" + self.relanuch_virtio_testpmd_with_non_mergeable_path(mode, case_info, extern_params, cbdma=True) + + if not self.check_2M_env : + self.relanuch_vhost_testpmd_iova_pa( extern_params=extern_params) self.close_all_testpmd() + def relanuch_vhost_testpmd_iova_pa(self, extern_params=""): + self.vhost_pmd.execute_cmd("quit", "#", 60) + self.logger.info('now relaunch vhost iova=pa') + self.lanuch_vhost_testpmd_with_cbdma(extern_params=extern_params, iova='pa') + + if 'packed' in self.running_case: + case_info = 'packed ring mergeable inorder path' + mode = "mrg_rxbuf=1,in_order=1,packed_vq=1" + self.relanuch_virtio_testpmd_with_multi_path(mode, case_info, extern_params, cbdma=True, iova='pa') + + case_info = 'packed ring mergeable path' + mode = "mrg_rxbuf=1,in_order=0,packed_vq=1" + self.relanuch_virtio_testpmd_with_multi_path(mode, case_info, extern_params, cbdma=True, iova='pa') + + case_info = 'packed ring non-mergeable path' + mode = "mrg_rxbuf=0,in_order=0,packed_vq=1" + self.relanuch_virtio_testpmd_with_non_mergeable_path(mode, case_info, extern_params, cbdma=True, iova='pa') + + case_info = 'packed ring inorder non-mergeable path' + mode = "mrg_rxbuf=0,in_order=1,packed_vq=1" + self.relanuch_virtio_testpmd_with_non_mergeable_path(mode, case_info, extern_params, cbdma=True, iova='pa') + + case_info = 'packed ring vectorized path' + mode = "mrg_rxbuf=0,in_order=1,packed_vq=1,vectorized=1" + self.relanuch_virtio_testpmd_with_non_mergeable_path(mode, case_info, extern_params, cbdma=True, vectorized_path=True, iova='pa') + + case_info = 'packed ring vectorized path and ring size is not power of 2' + mode = "mrg_rxbuf=0,in_order=1,packed_vq=1,vectorized=1,queue_size=1025" + extern_param = '--txd=1025 --rxd=1025' + self.relanuch_virtio_testpmd_with_non_mergeable_path(mode, case_info, extern_param, cbdma=True, vectorized_path=True, iova='pa') + + if 'split' in self.running_case: + case_info = 'split ring mergeable inorder path' + mode = "mrg_rxbuf=1,in_order=1" + self.relanuch_virtio_testpmd_with_multi_path(mode, case_info, extern_params, cbdma=True, iova='pa') + + case_info = 'split ring mergeable path' + mode = "mrg_rxbuf=1,in_order=0" + self.relanuch_virtio_testpmd_with_multi_path(mode, case_info, extern_params, cbdma=True, iova='pa') + + case_info = 'split ring non-mergeable path' + mode = "mrg_rxbuf=0,in_order=0" + extern_param = extern_params + ' --enable-hw-vlan-strip' + self.relanuch_virtio_testpmd_with_non_mergeable_path(mode, case_info, extern_param, cbdma=True, iova='pa') + + case_info = 'split ring inorder non-mergeable path' + mode = "mrg_rxbuf=0,in_order=1" + self.relanuch_virtio_testpmd_with_non_mergeable_path(mode, case_info, extern_params, cbdma=True, iova='pa') + + case_info = 'split ring vectorized path' + mode = "mrg_rxbuf=0,in_order=0,vectorized=1" + self.relanuch_virtio_testpmd_with_non_mergeable_path(mode, case_info, extern_params, cbdma=True, iova='pa') + def lanuch_vhost_testpmd_with_cbdma(self, extern_params="", iova='va'): """ start testpmd with cbdma -- 2.25.1