From patchwork Mon Mar 27 07:57:00 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Ling, WeiX" X-Patchwork-Id: 125524 Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id C8A8E4284E; Mon, 27 Mar 2023 09:59:57 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id BD31340ED8; Mon, 27 Mar 2023 09:59:57 +0200 (CEST) Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id ADED140ED5 for ; Mon, 27 Mar 2023 09:59:55 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1679903995; x=1711439995; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=oAbXpTt7Ij/ck0KyORBcN5nZlt9enr5l1oZeRDD7E/I=; b=K3azEWbEKceuml2NOdB3oCSpq9lz5vkGmfN/tGiTPo+8EgALUhTHLNEn Xgv8eMM3UaJicCHCK/841Myln8fv6B9jPZhZkeudCMAze467qmrqaNwMG /dDIw9sUSmNMBc9TalJjoQDbO5eOwxOX91HSsbx8lZ3IB54hEiKNQ1+vW e5YvMQi2Pv+HpYqv5dLGA7uABCHbQJhkbblwZ0ohKqmbapSh3KWsUHLej xq4AljUVrNsM5t7/7jXDGuqwPAY4F2/HVwItpqDAp71Yq7CuQFUNRe1L3 SaHC4k4y9DT+7lR+bHzTSYsj8RJIjOEHTgmbrmx5dd0kx9zueA4hAdBYY w==; X-IronPort-AV: E=McAfee;i="6600,9927,10661"; a="402800395" X-IronPort-AV: E=Sophos;i="5.98,294,1673942400"; d="scan'208";a="402800395" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Mar 2023 00:59:54 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10661"; a="715987081" X-IronPort-AV: E=Sophos;i="5.98,294,1673942400"; d="scan'208";a="715987081" Received: from unknown (HELO localhost.localdomain) ([10.239.252.222]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Mar 2023 00:59:51 -0700 From: Wei Ling To: dts@dpdk.org Cc: Wei Ling Subject: [dts][PATCH V1] tests/*_dsa: modify all dsa related testsuites by virtio_common optimize Date: Mon, 27 Mar 2023 15:57:00 +0800 Message-Id: <20230327075700.3205050-1-weix.ling@intel.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: test suite reviews and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dts-bounces@dpdk.org As tests/virtio_common.py optimize to adapt more scenes, such as we can assign the DSA device index to test in testcase, so modify all dsa related testsuites. Signed-off-by: Wei Ling --- ...TestSuite_loopback_vhost_async_perf_dsa.py | 144 +- ...te_loopback_virtio_user_server_mode_dsa.py | 1305 +++++++------ ...vhost_async_multi_paths_performance_dsa.py | 144 +- ...ite_pvp_vhost_async_virtio_pmd_perf_dsa.py | 450 ++--- tests/TestSuite_vhost_dsa.py | 796 ++++---- tests/TestSuite_vm2vm_virtio_net_perf_dsa.py | 1614 +++++++++-------- tests/TestSuite_vm2vm_virtio_pmd_dsa.py | 259 ++- tests/TestSuite_vm2vm_virtio_user_dsa.py | 619 ++++--- tests/virtio_common.py | 187 +- 9 files changed, 3026 insertions(+), 2492 deletions(-) diff --git a/tests/TestSuite_loopback_vhost_async_perf_dsa.py b/tests/TestSuite_loopback_vhost_async_perf_dsa.py index 85883ea3..679971ae 100644 --- a/tests/TestSuite_loopback_vhost_async_perf_dsa.py +++ b/tests/TestSuite_loopback_vhost_async_perf_dsa.py @@ -45,8 +45,6 @@ class TestLoopbackVhostAsyncPerfDsa(TestCase): """ self.dut.send_expect("killall -s INT %s" % self.testpmd_name, "#") self.dut.send_expect("rm -rf %s/vhost-net*" % self.base_dir, "#") - self.DC.reset_all_work_queue() - self.DC.bind_all_dsa_to_kernel() # Prepare the result table self.table_header = [ "Frame Size", @@ -249,8 +247,8 @@ class TestLoopbackVhostAsyncPerfDsa(TestCase): """ Test Case 1: loopback vhost async test with split ring inorder mergeable path using IDXD kernel driver """ - self.DC.create_work_queue(work_queue_number=2, dsa_index=0) - dmas = "txq0@wq0.0;rxq0@wq0.1" + wqs = self.DC.create_wq(wq_num=2, dsa_idxs=[0]) + dmas = "txq0@%s;rxq0@%s" % (wqs[0], wqs[1]) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net,queues=1,dmas=[%s]'" % dmas ) @@ -280,8 +278,8 @@ class TestLoopbackVhostAsyncPerfDsa(TestCase): """ Test Case 2: loopback vhost async test with split ring inorder non-mergeable path using IDXD kernel driver """ - self.DC.create_work_queue(work_queue_number=2, dsa_index=0) - dmas = "txq0@wq0.0;rxq0@wq0.1" + wqs = self.DC.create_wq(wq_num=2, dsa_idxs=[0]) + dmas = "txq0@%s;rxq0@%s" % (wqs[0], wqs[1]) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net,queues=1,dmas=[%s]'" % dmas ) @@ -311,8 +309,8 @@ class TestLoopbackVhostAsyncPerfDsa(TestCase): """ Test Case 3: loopback vhost async test with split ring mergeable path using IDXD kernel driver """ - self.DC.create_work_queue(work_queue_number=2, dsa_index=0) - dmas = "txq0@wq0.0;rxq0@wq0.1" + wqs = self.DC.create_wq(wq_num=2, dsa_idxs=[0]) + dmas = "txq0@%s;rxq0@%s" % (wqs[0], wqs[1]) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net,queues=1,dmas=[%s]'" % dmas ) @@ -342,8 +340,8 @@ class TestLoopbackVhostAsyncPerfDsa(TestCase): """ Test Case 4: loopback vhost async test with split ring non-mergeable path path using IDXD kernel driver """ - self.DC.create_work_queue(work_queue_number=2, dsa_index=0) - dmas = "txq0@wq0.0;rxq0@wq0.1" + wqs = self.DC.create_wq(wq_num=2, dsa_idxs=[0]) + dmas = "txq0@%s;rxq0@%s" % (wqs[0], wqs[1]) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net,queues=1,dmas=[%s]'" % dmas ) @@ -373,8 +371,8 @@ class TestLoopbackVhostAsyncPerfDsa(TestCase): """ Test Case 5: loopback vhost async test with split ring vectorized path using IDXD kernel driver """ - self.DC.create_work_queue(work_queue_number=2, dsa_index=0) - dmas = "txq0@wq0.0;rxq0@wq0.1" + wqs = self.DC.create_wq(wq_num=2, dsa_idxs=[0]) + dmas = "txq0@%s;rxq0@%s" % (wqs[0], wqs[1]) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net,queues=1,dmas=[%s]'" % dmas ) @@ -404,8 +402,8 @@ class TestLoopbackVhostAsyncPerfDsa(TestCase): """ Test Case 6: loopback vhost async test with packed ring inorder mergeable path path using IDXD kernel driver """ - self.DC.create_work_queue(work_queue_number=2, dsa_index=0) - dmas = "txq0@wq0.0;rxq0@wq0.1" + wqs = self.DC.create_wq(wq_num=2, dsa_idxs=[0]) + dmas = "txq0@%s;rxq0@%s" % (wqs[0], wqs[1]) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net,queues=1,dmas=[%s]'" % dmas ) @@ -435,8 +433,8 @@ class TestLoopbackVhostAsyncPerfDsa(TestCase): """ Test Case 7: loopback vhost async test with packed ring inorder non-mergeable path path using IDXD kernel driver """ - self.DC.create_work_queue(work_queue_number=2, dsa_index=0) - dmas = "txq0@wq0.0;rxq0@wq0.1" + wqs = self.DC.create_wq(wq_num=2, dsa_idxs=[0]) + dmas = "txq0@%s;rxq0@%s" % (wqs[0], wqs[1]) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net,queues=1,dmas=[%s]'" % dmas ) @@ -466,8 +464,8 @@ class TestLoopbackVhostAsyncPerfDsa(TestCase): """ Test Case 8: loopback vhost async test with packed ring mergeable path path using IDXD kernel driver """ - self.DC.create_work_queue(work_queue_number=2, dsa_index=0) - dmas = "txq0@wq0.0;rxq0@wq0.1" + wqs = self.DC.create_wq(wq_num=2, dsa_idxs=[0]) + dmas = "txq0@%s;rxq0@%s" % (wqs[0], wqs[1]) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net,queues=1,dmas=[%s]'" % dmas ) @@ -497,8 +495,8 @@ class TestLoopbackVhostAsyncPerfDsa(TestCase): """ Test Case 9: loopback vhost async test with packed ring non-mergeable path path using IDXD kernel driver """ - self.DC.create_work_queue(work_queue_number=2, dsa_index=0) - dmas = "txq0@wq0.0;rxq0@wq0.1" + wqs = self.DC.create_wq(wq_num=2, dsa_idxs=[0]) + dmas = "txq0@%s;rxq0@%s" % (wqs[0], wqs[1]) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net,queues=1,dmas=[%s]'" % dmas ) @@ -528,8 +526,8 @@ class TestLoopbackVhostAsyncPerfDsa(TestCase): """ Test Case 10: loopback vhost async test with packed ring vectorized path using IDXD kernel driver """ - self.DC.create_work_queue(work_queue_number=2, dsa_index=0) - dmas = "txq0@wq0.0;rxq0@wq0.1" + wqs = self.DC.create_wq(wq_num=2, dsa_idxs=[0]) + dmas = "txq0@%s;rxq0@%s" % (wqs[0], wqs[1]) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net,queues=1,dmas=[%s]'" % dmas ) @@ -559,20 +557,20 @@ class TestLoopbackVhostAsyncPerfDsa(TestCase): """ Test Case 11: loopback vhost async test with split ring inorder mergeable path using vfio-pci driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) - dmas = "txq0@%s-q0;" "rxq0@%s-q1" % (self.use_dsa_list[0], self.use_dsa_list[0]) + dmas = "txq0@%s-q0;rxq0@%s-q1" % (dsas[0], dsas[0]) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net,queues=1,dmas=[%s]'" % dmas ) vhost_param = "--nb-cores=1 --txd=1024 --rxd=1024" - port_options = {self.use_dsa_list[0]: "max_queues=2"} + port_options = {dsas[0]: "max_queues=2"} self.start_vhost_user_testpmd( eal_param=vhost_eal_param, param=vhost_param, no_pci=False, - ports=self.use_dsa_list, + ports=dsas, port_options=port_options, ) virtio_eal_param = "--vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,in_order=1,mrg_rxbuf=1" @@ -599,20 +597,20 @@ class TestLoopbackVhostAsyncPerfDsa(TestCase): """ Test Case 12: loopback vhost async test with split ring inorder non-mergeable path using vfio-pci driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) - dmas = "txq0@%s-q0;" "rxq0@%s-q1" % (self.use_dsa_list[0], self.use_dsa_list[0]) + dmas = "txq0@%s-q0;rxq0@%s-q1" % (dsas[0], dsas[0]) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net,queues=1,dmas=[%s]'" % dmas ) vhost_param = "--nb-cores=1 --txd=1024 --rxd=1024" - port_options = {self.use_dsa_list[0]: "max_queues=2"} + port_options = {dsas[0]: "max_queues=2"} self.start_vhost_user_testpmd( eal_param=vhost_eal_param, param=vhost_param, no_pci=False, - ports=self.use_dsa_list, + ports=dsas, port_options=port_options, ) virtio_eal_param = "--vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,in_order=1,mrg_rxbuf=0" @@ -639,20 +637,20 @@ class TestLoopbackVhostAsyncPerfDsa(TestCase): """ Test Case 13: loopback vhost async test with split ring mergeable path using vfio-pci driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) - dmas = "txq0@%s-q0;" "rxq0@%s-q1" % (self.use_dsa_list[0], self.use_dsa_list[0]) + dmas = "txq0@%s-q0;rxq0@%s-q1" % (dsas[0], dsas[0]) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net,queues=1,dmas=[%s]'" % dmas ) vhost_param = "--nb-cores=1 --txd=1024 --rxd=1024" - port_options = {self.use_dsa_list[0]: "max_queues=2"} + port_options = {dsas[0]: "max_queues=2"} self.start_vhost_user_testpmd( eal_param=vhost_eal_param, param=vhost_param, no_pci=False, - ports=self.use_dsa_list, + ports=dsas, port_options=port_options, ) virtio_eal_param = "--vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,in_order=0,mrg_rxbuf=1" @@ -679,20 +677,20 @@ class TestLoopbackVhostAsyncPerfDsa(TestCase): """ Test Case 14: loopback vhost async test with split ring non-mergeable path using vfio-pci driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) - dmas = "txq0@%s-q0;" "rxq0@%s-q1" % (self.use_dsa_list[0], self.use_dsa_list[0]) + dmas = "txq0@%s-q0;rxq0@%s-q1" % (dsas[0], dsas[0]) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net,queues=1,dmas=[%s]'" % dmas ) vhost_param = "--nb-cores=1 --txd=1024 --rxd=1024" - port_options = {self.use_dsa_list[0]: "max_queues=2"} + port_options = {dsas[0]: "max_queues=2"} self.start_vhost_user_testpmd( eal_param=vhost_eal_param, param=vhost_param, no_pci=False, - ports=self.use_dsa_list, + ports=dsas, port_options=port_options, ) virtio_eal_param = "--vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,in_order=0,mrg_rxbuf=0" @@ -719,20 +717,20 @@ class TestLoopbackVhostAsyncPerfDsa(TestCase): """ Test Case 15: loopback vhost async test with split ring vectorized path using vfio-pci driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) - dmas = "txq0@%s-q0;" "rxq0@%s-q1" % (self.use_dsa_list[0], self.use_dsa_list[0]) + dmas = "txq0@%s-q0;rxq0@%s-q1" % (dsas[0], dsas[0]) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net,queues=1,dmas=[%s]'" % dmas ) vhost_param = "--nb-cores=1 --txd=1024 --rxd=1024" - port_options = {self.use_dsa_list[0]: "max_queues=2"} + port_options = {dsas[0]: "max_queues=2"} self.start_vhost_user_testpmd( eal_param=vhost_eal_param, param=vhost_param, no_pci=False, - ports=self.use_dsa_list, + ports=dsas, port_options=port_options, ) virtio_eal_param = "--vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,in_order=0,mrg_rxbuf=0,vectorized=1" @@ -759,20 +757,20 @@ class TestLoopbackVhostAsyncPerfDsa(TestCase): """ Test Case 16: loopback vhost async test with packed ring inorder mergeable path using vfio-pci driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) - dmas = "txq0@%s-q0;" "rxq0@%s-q1" % (self.use_dsa_list[0], self.use_dsa_list[0]) + dmas = "txq0@%s-q0;rxq0@%s-q1" % (dsas[0], dsas[0]) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net,queues=1,dmas=[%s]'" % dmas ) vhost_param = "--nb-cores=1 --txd=1024 --rxd=1024" - port_options = {self.use_dsa_list[0]: "max_queues=2"} + port_options = {dsas[0]: "max_queues=2"} self.start_vhost_user_testpmd( eal_param=vhost_eal_param, param=vhost_param, no_pci=False, - ports=self.use_dsa_list, + ports=dsas, port_options=port_options, ) virtio_eal_param = "--vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,packed_vq=1,in_order=1,mrg_rxbuf=1" @@ -799,20 +797,20 @@ class TestLoopbackVhostAsyncPerfDsa(TestCase): """ Test Case 17: loopback vhost async test with packed ring inorder non-mergeable path using vfio-pci driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) - dmas = "txq0@%s-q0;" "rxq0@%s-q1" % (self.use_dsa_list[0], self.use_dsa_list[0]) + dmas = "txq0@%s-q0;rxq0@%s-q1" % (dsas[0], dsas[0]) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net,queues=1,dmas=[%s]'" % dmas ) vhost_param = "--nb-cores=1 --txd=1024 --rxd=1024" - port_options = {self.use_dsa_list[0]: "max_queues=2"} + port_options = {dsas[0]: "max_queues=2"} self.start_vhost_user_testpmd( eal_param=vhost_eal_param, param=vhost_param, no_pci=False, - ports=self.use_dsa_list, + ports=dsas, port_options=port_options, ) virtio_eal_param = "--vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,packed_vq=1,in_order=1,mrg_rxbuf=0" @@ -839,20 +837,20 @@ class TestLoopbackVhostAsyncPerfDsa(TestCase): """ Test Case 18: loopback vhost async test with packed ring mergeable path using vfio-pci driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) - dmas = "txq0@%s-q0;" "rxq0@%s-q1" % (self.use_dsa_list[0], self.use_dsa_list[0]) + dmas = "txq0@%s-q0;rxq0@%s-q1" % (dsas[0], dsas[0]) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net,queues=1,dmas=[%s]'" % dmas ) vhost_param = "--nb-cores=1 --txd=1024 --rxd=1024" - port_options = {self.use_dsa_list[0]: "max_queues=2"} + port_options = {dsas[0]: "max_queues=2"} self.start_vhost_user_testpmd( eal_param=vhost_eal_param, param=vhost_param, no_pci=False, - ports=self.use_dsa_list, + ports=dsas, port_options=port_options, ) virtio_eal_param = "--vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,packed_vq=1,in_order=0,mrg_rxbuf=1" @@ -879,20 +877,20 @@ class TestLoopbackVhostAsyncPerfDsa(TestCase): """ Test Case 19: loopback vhost async test with packed ring non-mergeable path using vfio-pci driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) - dmas = "txq0@%s-q0;" "rxq0@%s-q1" % (self.use_dsa_list[0], self.use_dsa_list[0]) + dmas = "txq0@%s-q0;rxq0@%s-q1" % (dsas[0], dsas[0]) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net,queues=1,dmas=[%s]'" % dmas ) vhost_param = "--nb-cores=1 --txd=1024 --rxd=1024" - port_options = {self.use_dsa_list[0]: "max_queues=2"} + port_options = {dsas[0]: "max_queues=2"} self.start_vhost_user_testpmd( eal_param=vhost_eal_param, param=vhost_param, no_pci=False, - ports=self.use_dsa_list, + ports=dsas, port_options=port_options, ) virtio_eal_param = "--vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,packed_vq=1,in_order=0,mrg_rxbuf=0" @@ -919,20 +917,20 @@ class TestLoopbackVhostAsyncPerfDsa(TestCase): """ Test Case 20: loopback vhost async test with packed ring vectorized path using vfio-pci driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) - dmas = "txq0@%s-q0;" "rxq0@%s-q1" % (self.use_dsa_list[0], self.use_dsa_list[0]) + dmas = "txq0@%s-q0;rxq0@%s-q1" % (dsas[0], dsas[0]) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net,queues=1,dmas=[%s]'" % dmas ) vhost_param = "--nb-cores=1 --txd=1024 --rxd=1024" - port_options = {self.use_dsa_list[0]: "max_queues=2"} + port_options = {dsas[0]: "max_queues=2"} self.start_vhost_user_testpmd( eal_param=vhost_eal_param, param=vhost_param, no_pci=False, - ports=self.use_dsa_list, + ports=dsas, port_options=port_options, ) virtio_eal_param = "--vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,packed_vq=1,in_order=0,mrg_rxbuf=0,vectorized=1" @@ -965,8 +963,6 @@ class TestLoopbackVhostAsyncPerfDsa(TestCase): """ self.dut.send_expect("killall -s INT %s" % self.testpmd_name, "#") self.dut.send_expect("rm -rf %s/vhost-net*" % self.base_dir, "#") - self.DC.reset_all_work_queue() - self.DC.bind_all_dsa_to_kernel() def tear_down_all(self): """ diff --git a/tests/TestSuite_loopback_virtio_user_server_mode_dsa.py b/tests/TestSuite_loopback_virtio_user_server_mode_dsa.py index facd84e1..854cee2d 100644 --- a/tests/TestSuite_loopback_virtio_user_server_mode_dsa.py +++ b/tests/TestSuite_loopback_virtio_user_server_mode_dsa.py @@ -50,9 +50,6 @@ class TestLoopbackVirtioUserServerModeDsa(TestCase): "Cycle", ] self.result_table_create(self.table_header) - self.use_dsa_list = [] - self.DC.reset_all_work_queue() - self.DC.bind_all_dsa_to_kernel() @property def check_2M_env(self): @@ -190,25 +187,22 @@ class TestLoopbackVirtioUserServerModeDsa(TestCase): Test Case 1: Loopback split ring server mode large chain packets stress test with dsa dpdk driver """ if not self.check_2M_env: - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket - ) - dmas = "txq0@%s-q0;" "rxq0@%s-q0" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) + dmas = "txq0@%s-q0;rxq0@%s-q0" % (dsas[0], dsas[0]) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net0,queues=1,dmas=[%s],client=1'" % dmas ) vhost_param = "--nb-cores=1 --txd=1024 --rxd=1024 --mbuf-size=65535" - port_options = {self.use_dsa_list[0]: "max_queues=1"} + port_options = {dsas[0]: "max_queues=1"} self.start_vhost_testpmd( cores=self.vhost_core_list, eal_param=vhost_eal_param, param=vhost_param, no_pci=False, - ports=self.use_dsa_list, + ports=dsas, port_options=port_options, iova_mode="va", ) @@ -230,25 +224,22 @@ class TestLoopbackVirtioUserServerModeDsa(TestCase): Test Case 2: Loopback packed ring server mode large chain packets stress test with dsa dpdk driver """ if not self.check_2M_env: - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket - ) - dmas = "txq0@%s-q0;" "rxq0@%s-q0" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) + dmas = "txq0@%s-q0;rxq0@%s-q0" % (dsas[0], dsas[0]) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net0,queues=1,dmas=[%s],client=1'" % dmas ) vhost_param = "--nb-cores=1 --txd=1024 --rxd=1024 --mbuf-size=65535" - port_options = {self.use_dsa_list[0]: "max_queues=1"} + port_options = {dsas[0]: "max_queues=1"} self.start_vhost_testpmd( cores=self.vhost_core_list, eal_param=vhost_eal_param, param=vhost_param, no_pci=False, - ports=self.use_dsa_list, + ports=dsas, port_options=port_options, iova_mode="va", ) @@ -269,8 +260,8 @@ class TestLoopbackVirtioUserServerModeDsa(TestCase): """ Test Case 3: Loopback split ring inorder mergeable path multi-queues payload check with server mode and dsa dpdk driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) dmas = ( "txq0@%s-q0;" @@ -286,31 +277,31 @@ class TestLoopbackVirtioUserServerModeDsa(TestCase): "rxq6@%s-q3;" "rxq7@%s-q3" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=8,client=1,dmas=[%s]'" % dmas ) vhost_param = "--nb-cores=4 --rxq=8 --txq=8 --txd=1024 --rxd=1024" - port_options = {self.use_dsa_list[0]: "max_queues=8"} + port_options = {dsas[0]: "max_queues=8"} self.start_vhost_testpmd( cores=self.vhost_core_list, eal_param=vhost_eal_param, param=vhost_param, no_pci=False, - ports=self.use_dsa_list, + ports=dsas, port_options=port_options, iova_mode="va", ) @@ -333,8 +324,8 @@ class TestLoopbackVirtioUserServerModeDsa(TestCase): """ Test Case 4: Loopback split ring mergeable path multi-queues payload check with server mode and dsa dpdk driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) dmas = ( "txq0@%s-q0;" @@ -350,31 +341,31 @@ class TestLoopbackVirtioUserServerModeDsa(TestCase): "rxq6@%s-q3;" "rxq7@%s-q3" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=8,client=1,dmas=[%s]'" % dmas ) vhost_param = "--nb-cores=4 --rxq=8 --txq=8 --txd=1024 --rxd=1024" - port_options = {self.use_dsa_list[0]: "max_queues=8"} + port_options = {dsas[0]: "max_queues=8"} self.start_vhost_testpmd( cores=self.vhost_core_list, eal_param=vhost_eal_param, param=vhost_param, no_pci=False, - ports=self.use_dsa_list, + ports=dsas, port_options=port_options, iova_mode="va", ) @@ -397,8 +388,8 @@ class TestLoopbackVirtioUserServerModeDsa(TestCase): """ Test Case 5: Loopback split ring non-mergeable path multi-queues payload check with server mode and dsa dpdk driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) dmas = ( "txq0@%s-q0;" @@ -414,31 +405,31 @@ class TestLoopbackVirtioUserServerModeDsa(TestCase): "rxq6@%s-q3;" "rxq7@%s-q3" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=8,client=1,dmas=[%s]'" % dmas ) vhost_param = "--nb-cores=4 --rxq=8 --txq=8 --txd=1024 --rxd=1024" - port_options = {self.use_dsa_list[0]: "max_queues=8"} + port_options = {dsas[0]: "max_queues=8"} self.start_vhost_testpmd( cores=self.vhost_core_list, eal_param=vhost_eal_param, param=vhost_param, no_pci=False, - ports=self.use_dsa_list, + ports=dsas, port_options=port_options, iova_mode="va", ) @@ -463,8 +454,8 @@ class TestLoopbackVirtioUserServerModeDsa(TestCase): """ Test Case 6: Loopback split ring inorder non-mergeable path multi-queues payload check with server mode and dsa dpdk driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) dmas = ( "txq0@%s-q0;" @@ -480,31 +471,31 @@ class TestLoopbackVirtioUserServerModeDsa(TestCase): "rxq6@%s-q3;" "rxq7@%s-q3" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=8,client=1,dmas=[%s]'" % dmas ) vhost_param = "--nb-cores=4 --rxq=8 --txq=8 --txd=1024 --rxd=1024" - port_options = {self.use_dsa_list[0]: "max_queues=8"} + port_options = {dsas[0]: "max_queues=8"} self.start_vhost_testpmd( cores=self.vhost_core_list, eal_param=vhost_eal_param, param=vhost_param, no_pci=False, - ports=self.use_dsa_list, + ports=dsas, port_options=port_options, iova_mode="va", ) @@ -527,8 +518,8 @@ class TestLoopbackVirtioUserServerModeDsa(TestCase): """ Test Case 7: Loopback split ring vectorized path multi-queues payload check with server mode and dsa dpdk driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) dmas = ( "txq0@%s-q0;" @@ -544,31 +535,31 @@ class TestLoopbackVirtioUserServerModeDsa(TestCase): "rxq6@%s-q3;" "rxq7@%s-q3" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=8,client=1,dmas=[%s]'" % dmas ) vhost_param = "--nb-cores=4 --rxq=8 --txq=8 --txd=1024 --rxd=1024" - port_options = {self.use_dsa_list[0]: "max_queues=8"} + port_options = {dsas[0]: "max_queues=8"} self.start_vhost_testpmd( cores=self.vhost_core_list, eal_param=vhost_eal_param, param=vhost_param, no_pci=False, - ports=self.use_dsa_list, + ports=dsas, port_options=port_options, iova_mode="va", ) @@ -591,8 +582,8 @@ class TestLoopbackVirtioUserServerModeDsa(TestCase): """ Test Case 8: Loopback packed ring inorder mergeable path multi-queues payload check with server mode and dsa dpdk driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) dmas = ( "txq0@%s-q0;" @@ -608,31 +599,31 @@ class TestLoopbackVirtioUserServerModeDsa(TestCase): "rxq6@%s-q3;" "rxq7@%s-q3" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=8,client=1,dmas=[%s]'" % dmas ) vhost_param = "--nb-cores=4 --rxq=8 --txq=8 --txd=1024 --rxd=1024" - port_options = {self.use_dsa_list[0]: "max_queues=8"} + port_options = {dsas[0]: "max_queues=8"} self.start_vhost_testpmd( cores=self.vhost_core_list, eal_param=vhost_eal_param, param=vhost_param, no_pci=False, - ports=self.use_dsa_list, + ports=dsas, port_options=port_options, iova_mode="va", ) @@ -655,8 +646,8 @@ class TestLoopbackVirtioUserServerModeDsa(TestCase): """ Test Case 9: Loopback packed ring mergeable path multi-queues payload check with server mode and dsa dpdk driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) dmas = ( "txq0@%s-q0;" @@ -672,31 +663,31 @@ class TestLoopbackVirtioUserServerModeDsa(TestCase): "rxq6@%s-q3;" "rxq7@%s-q3" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=8,client=1,dmas=[%s]'" % dmas ) vhost_param = "--nb-cores=4 --rxq=8 --txq=8 --txd=1024 --rxd=1024" - port_options = {self.use_dsa_list[0]: "max_queues=8"} + port_options = {dsas[0]: "max_queues=8"} self.start_vhost_testpmd( cores=self.vhost_core_list, eal_param=vhost_eal_param, param=vhost_param, no_pci=False, - ports=self.use_dsa_list, + ports=dsas, port_options=port_options, iova_mode="va", ) @@ -719,8 +710,8 @@ class TestLoopbackVirtioUserServerModeDsa(TestCase): """ Test Case 10: Loopback packed ring non-mergeable path multi-queues payload check with server mode and dsa dpdk driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) dmas = ( "txq0@%s-q0;" @@ -736,31 +727,31 @@ class TestLoopbackVirtioUserServerModeDsa(TestCase): "rxq6@%s-q3;" "rxq7@%s-q3" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=8,client=1,dmas=[%s]'" % dmas ) vhost_param = "--nb-cores=4 --rxq=8 --txq=8 --txd=1024 --rxd=1024" - port_options = {self.use_dsa_list[0]: "max_queues=8"} + port_options = {dsas[0]: "max_queues=8"} self.start_vhost_testpmd( cores=self.vhost_core_list, eal_param=vhost_eal_param, param=vhost_param, no_pci=False, - ports=self.use_dsa_list, + ports=dsas, port_options=port_options, iova_mode="va", ) @@ -783,8 +774,8 @@ class TestLoopbackVirtioUserServerModeDsa(TestCase): """ Test Case 11: Loopback packed ring inorder non-mergeable path multi-queues payload check with server mode and dsa dpdk driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) dmas = ( "txq0@%s-q0;" @@ -800,31 +791,31 @@ class TestLoopbackVirtioUserServerModeDsa(TestCase): "rxq6@%s-q3;" "rxq7@%s-q3" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=8,client=1,dmas=[%s]'" % dmas ) vhost_param = "--nb-cores=4 --rxq=8 --txq=8 --txd=1024 --rxd=1024" - port_options = {self.use_dsa_list[0]: "max_queues=8"} + port_options = {dsas[0]: "max_queues=8"} self.start_vhost_testpmd( cores=self.vhost_core_list, eal_param=vhost_eal_param, param=vhost_param, no_pci=False, - ports=self.use_dsa_list, + ports=dsas, port_options=port_options, iova_mode="va", ) @@ -847,8 +838,8 @@ class TestLoopbackVirtioUserServerModeDsa(TestCase): """ Test Case 12: Loopback packed ring vectorized path multi-queues payload check with server mode and dsa dpdk driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) dmas = ( "txq0@%s-q0;" @@ -864,31 +855,31 @@ class TestLoopbackVirtioUserServerModeDsa(TestCase): "rxq6@%s-q3;" "rxq7@%s-q3" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=8,client=1,dmas=[%s]'" % dmas ) vhost_param = "--nb-cores=4 --rxq=8 --txq=8 --txd=1024 --rxd=1024" - port_options = {self.use_dsa_list[0]: "max_queues=8"} + port_options = {dsas[0]: "max_queues=8"} self.start_vhost_testpmd( cores=self.vhost_core_list, eal_param=vhost_eal_param, param=vhost_param, no_pci=False, - ports=self.use_dsa_list, + ports=dsas, port_options=port_options, iova_mode="va", ) @@ -911,8 +902,8 @@ class TestLoopbackVirtioUserServerModeDsa(TestCase): """ Test Case 13: Loopback packed ring vectorized path and ring size is not power of 2 multi-queues payload check with server mode and dsa dpdk driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) dmas = ( "txq0@%s-q0;" @@ -928,31 +919,31 @@ class TestLoopbackVirtioUserServerModeDsa(TestCase): "rxq6@%s-q3;" "rxq7@%s-q3" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=8,client=1,dmas=[%s]'" % dmas ) vhost_param = "--nb-cores=4 --rxq=8 --txq=8 --txd=1024 --rxd=1024" - port_options = {self.use_dsa_list[0]: "max_queues=8"} + port_options = {dsas[0]: "max_queues=8"} self.start_vhost_testpmd( cores=self.vhost_core_list, eal_param=vhost_eal_param, param=vhost_param, no_pci=False, - ports=self.use_dsa_list, + ports=dsas, port_options=port_options, iova_mode="va", ) @@ -976,8 +967,8 @@ class TestLoopbackVirtioUserServerModeDsa(TestCase): Test Case 14: Loopback split ring server mode large chain packets stress test with dsa kernel driver """ if not self.check_2M_env: - self.DC.create_work_queue(work_queue_number=1, dsa_index=0) - dmas = "txq0@wq0.0;rxq0@wq0.0" + wqs = self.DC.create_wq(wq_num=1, dsa_idxs=[0]) + dmas = "txq0@%s;rxq0@%s" % (wqs[0], wqs[0]) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net0,queues=1,dmas=[%s],client=1'" % dmas @@ -1008,8 +999,8 @@ class TestLoopbackVirtioUserServerModeDsa(TestCase): Test Case 15: Loopback packed ring server mode large chain packets stress test with dsa kernel driver """ if not self.check_2M_env: - self.DC.create_work_queue(work_queue_number=1, dsa_index=0) - dmas = "txq0@wq0.0;rxq0@wq0.0" + wqs = self.DC.create_wq(wq_num=1, dsa_idxs=[0]) + dmas = "txq0@%s;rxq0@%s" % (wqs[0], wqs[0]) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net0,queues=1,dmas=[%s],client=1'" % dmas @@ -1039,21 +1030,34 @@ class TestLoopbackVirtioUserServerModeDsa(TestCase): """ Test Case 16: Loopback split ring inorder mergeable path multi-queues payload check with server mode and dsa kernel driver """ - self.DC.create_work_queue(work_queue_number=8, dsa_index=0) - self.DC.create_work_queue(work_queue_number=8, dsa_index=1) + wqs = self.DC.create_wq(wq_num=8, dsa_idxs=[0, 1]) dmas = ( - "txq0@wq0.0;" - "txq1@wq0.0;" - "txq2@wq0.0;" - "txq3@wq0.0;" - "txq4@wq0.1;" - "txq5@wq0.1;" - "rxq2@wq1.0;" - "rxq3@wq1.0;" - "rxq4@wq1.1;" - "rxq5@wq1.1;" - "rxq6@wq1.1;" - "rxq7@wq1.1" + "txq0@%s;" + "txq1@%s;" + "txq2@%s;" + "txq3@%s;" + "txq4@%s;" + "txq5@%s;" + "rxq2@%s;" + "rxq3@%s;" + "rxq4@%s;" + "rxq5@%s;" + "rxq6@%s;" + "rxq7@%s" + % ( + wqs[0], + wqs[0], + wqs[0], + wqs[0], + wqs[1], + wqs[1], + wqs[8], + wqs[8], + wqs[9], + wqs[9], + wqs[9], + wqs[9], + ) ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=8,client=1,dmas=[%s]'" % dmas @@ -1080,18 +1084,32 @@ class TestLoopbackVirtioUserServerModeDsa(TestCase): self.vhost_user_pmd.quit() dmas = ( - "txq0@wq0.0;" - "txq1@wq0.1;" - "txq2@wq0.2;" - "txq3@wq0.3;" - "txq4@wq0.4;" - "txq5@wq0.5;" - "rxq2@wq1.2;" - "rxq3@wq1.3;" - "rxq4@wq1.4;" - "rxq5@wq1.5;" - "rxq6@wq1.6;" - "rxq7@wq1.7" + "txq0@%s;" + "txq1@%s;" + "txq2@%s;" + "txq3@%s;" + "txq4@%s;" + "txq5@%s;" + "rxq2@%s;" + "rxq3@%s;" + "rxq4@%s;" + "rxq5@%s;" + "rxq6@%s;" + "rxq7@%s" + % ( + wqs[0], + wqs[1], + wqs[2], + wqs[3], + wqs[4], + wqs[5], + wqs[10], + wqs[11], + wqs[12], + wqs[13], + wqs[14], + wqs[15], + ) ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=8,client=1,dmas=[%s]'" % dmas @@ -1115,21 +1133,34 @@ class TestLoopbackVirtioUserServerModeDsa(TestCase): """ Test Case 17: Loopback split ring mergeable path multi-queues payload check with server mode and dsa kernel driver """ - self.DC.create_work_queue(work_queue_number=8, dsa_index=0) - self.DC.create_work_queue(work_queue_number=8, dsa_index=1) + wqs = self.DC.create_wq(wq_num=8, dsa_idxs=[0, 1]) dmas = ( - "txq0@wq0.0;" - "txq1@wq0.0;" - "txq2@wq0.0;" - "txq3@wq0.0;" - "txq4@wq0.1;" - "txq5@wq0.1;" - "rxq2@wq1.0;" - "rxq3@wq1.0;" - "rxq4@wq1.1;" - "rxq5@wq1.1;" - "rxq6@wq1.1;" - "rxq7@wq1.1" + "txq0@%s;" + "txq1@%s;" + "txq2@%s;" + "txq3@%s;" + "txq4@%s;" + "txq5@%s;" + "rxq2@%s;" + "rxq3@%s;" + "rxq4@%s;" + "rxq5@%s;" + "rxq6@%s;" + "rxq7@%s" + % ( + wqs[0], + wqs[0], + wqs[0], + wqs[0], + wqs[1], + wqs[1], + wqs[8], + wqs[8], + wqs[9], + wqs[9], + wqs[9], + wqs[9], + ) ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=8,client=1,dmas=[%s]'" % dmas @@ -1157,18 +1188,32 @@ class TestLoopbackVirtioUserServerModeDsa(TestCase): self.vhost_user_pmd.quit() dmas = ( - "txq0@wq0.0;" - "txq1@wq0.1;" - "txq2@wq0.2;" - "txq3@wq0.3;" - "txq4@wq0.4;" - "txq5@wq0.5;" - "rxq2@wq1.2;" - "rxq3@wq1.3;" - "rxq4@wq1.4;" - "rxq5@wq1.5;" - "rxq6@wq1.6;" - "rxq7@wq1.7" + "txq0@%s;" + "txq1@%s;" + "txq2@%s;" + "txq3@%s;" + "txq4@%s;" + "txq5@%s;" + "rxq2@%s;" + "rxq3@%s;" + "rxq4@%s;" + "rxq5@%s;" + "rxq6@%s;" + "rxq7@%s" + % ( + wqs[0], + wqs[1], + wqs[2], + wqs[3], + wqs[4], + wqs[5], + wqs[10], + wqs[11], + wqs[12], + wqs[13], + wqs[14], + wqs[15], + ) ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=8,client=1,dmas=[%s]'" % dmas @@ -1192,21 +1237,34 @@ class TestLoopbackVirtioUserServerModeDsa(TestCase): """ Test Case 18: Loopback split ring non-mergeable path multi-queues payload check with server mode and dsa kernel driver """ - self.DC.create_work_queue(work_queue_number=8, dsa_index=0) - self.DC.create_work_queue(work_queue_number=8, dsa_index=1) + wqs = self.DC.create_wq(wq_num=8, dsa_idxs=[0, 1]) dmas = ( - "txq0@wq0.0;" - "txq1@wq0.0;" - "txq2@wq0.0;" - "txq3@wq0.0;" - "txq4@wq0.1;" - "txq5@wq0.1;" - "rxq2@wq1.0;" - "rxq3@wq1.0;" - "rxq4@wq1.1;" - "rxq5@wq1.1;" - "rxq6@wq1.1;" - "rxq7@wq1.1" + "txq0@%s;" + "txq1@%s;" + "txq2@%s;" + "txq3@%s;" + "txq4@%s;" + "txq5@%s;" + "rxq2@%s;" + "rxq3@%s;" + "rxq4@%s;" + "rxq5@%s;" + "rxq6@%s;" + "rxq7@%s" + % ( + wqs[0], + wqs[0], + wqs[0], + wqs[0], + wqs[1], + wqs[1], + wqs[8], + wqs[8], + wqs[9], + wqs[9], + wqs[9], + wqs[9], + ) ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=8,client=1,dmas=[%s]'" % dmas @@ -1236,18 +1294,32 @@ class TestLoopbackVirtioUserServerModeDsa(TestCase): self.vhost_user_pmd.quit() dmas = ( - "txq0@wq0.0;" - "txq1@wq0.1;" - "txq2@wq0.2;" - "txq3@wq0.3;" - "txq4@wq0.4;" - "txq5@wq0.5;" - "rxq2@wq1.2;" - "rxq3@wq1.3;" - "rxq4@wq1.4;" - "rxq5@wq1.5;" - "rxq6@wq1.6;" - "rxq7@wq1.7" + "txq0@%s;" + "txq1@%s;" + "txq2@%s;" + "txq3@%s;" + "txq4@%s;" + "txq5@%s;" + "rxq2@%s;" + "rxq3@%s;" + "rxq4@%s;" + "rxq5@%s;" + "rxq6@%s;" + "rxq7@%s" + % ( + wqs[0], + wqs[1], + wqs[2], + wqs[3], + wqs[4], + wqs[5], + wqs[10], + wqs[11], + wqs[12], + wqs[13], + wqs[14], + wqs[15], + ) ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=8,client=1,dmas=[%s]'" % dmas @@ -1271,21 +1343,34 @@ class TestLoopbackVirtioUserServerModeDsa(TestCase): """ Test Case 19: Loopback split ring inorder non-mergeable path multi-queues payload check with server mode and dsa kernel driver """ - self.DC.create_work_queue(work_queue_number=8, dsa_index=0) - self.DC.create_work_queue(work_queue_number=8, dsa_index=1) + wqs = self.DC.create_wq(wq_num=8, dsa_idxs=[0, 1]) dmas = ( - "txq0@wq0.0;" - "txq1@wq0.0;" - "txq2@wq0.0;" - "txq3@wq0.0;" - "txq4@wq0.1;" - "txq5@wq0.1;" - "rxq2@wq1.0;" - "rxq3@wq1.0;" - "rxq4@wq1.1;" - "rxq5@wq1.1;" - "rxq6@wq1.1;" - "rxq7@wq1.1" + "txq0@%s;" + "txq1@%s;" + "txq2@%s;" + "txq3@%s;" + "txq4@%s;" + "txq5@%s;" + "rxq2@%s;" + "rxq3@%s;" + "rxq4@%s;" + "rxq5@%s;" + "rxq6@%s;" + "rxq7@%s" + % ( + wqs[0], + wqs[0], + wqs[0], + wqs[0], + wqs[1], + wqs[1], + wqs[8], + wqs[8], + wqs[9], + wqs[9], + wqs[9], + wqs[9], + ) ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=8,client=1,dmas=[%s]'" % dmas @@ -1313,18 +1398,32 @@ class TestLoopbackVirtioUserServerModeDsa(TestCase): self.vhost_user_pmd.quit() dmas = ( - "txq0@wq0.0;" - "txq1@wq0.1;" - "txq2@wq0.2;" - "txq3@wq0.3;" - "txq4@wq0.4;" - "txq5@wq0.5;" - "rxq2@wq1.2;" - "rxq3@wq1.3;" - "rxq4@wq1.4;" - "rxq5@wq1.5;" - "rxq6@wq1.6;" - "rxq7@wq1.7" + "txq0@%s;" + "txq1@%s;" + "txq2@%s;" + "txq3@%s;" + "txq4@%s;" + "txq5@%s;" + "rxq2@%s;" + "rxq3@%s;" + "rxq4@%s;" + "rxq5@%s;" + "rxq6@%s;" + "rxq7@%s" + % ( + wqs[0], + wqs[1], + wqs[2], + wqs[3], + wqs[4], + wqs[5], + wqs[10], + wqs[11], + wqs[12], + wqs[13], + wqs[14], + wqs[15], + ) ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=8,client=1,dmas=[%s]'" % dmas @@ -1348,21 +1447,34 @@ class TestLoopbackVirtioUserServerModeDsa(TestCase): """ Test Case 20: Loopback split ring vectorized path multi-queues payload check with server mode and dsa kernel driver """ - self.DC.create_work_queue(work_queue_number=8, dsa_index=0) - self.DC.create_work_queue(work_queue_number=8, dsa_index=1) + wqs = self.DC.create_wq(wq_num=8, dsa_idxs=[0, 1]) dmas = ( - "txq0@wq0.0;" - "txq1@wq0.0;" - "txq2@wq0.0;" - "txq3@wq0.0;" - "txq4@wq0.1;" - "txq5@wq0.1;" - "rxq2@wq1.0;" - "rxq3@wq1.0;" - "rxq4@wq1.1;" - "rxq5@wq1.1;" - "rxq6@wq1.1;" - "rxq7@wq1.1" + "txq0@%s;" + "txq1@%s;" + "txq2@%s;" + "txq3@%s;" + "txq4@%s;" + "txq5@%s;" + "rxq2@%s;" + "rxq3@%s;" + "rxq4@%s;" + "rxq5@%s;" + "rxq6@%s;" + "rxq7@%s" + % ( + wqs[0], + wqs[0], + wqs[0], + wqs[0], + wqs[1], + wqs[1], + wqs[8], + wqs[8], + wqs[9], + wqs[9], + wqs[9], + wqs[9], + ) ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=8,client=1,dmas=[%s]'" % dmas @@ -1390,18 +1502,32 @@ class TestLoopbackVirtioUserServerModeDsa(TestCase): self.vhost_user_pmd.quit() dmas = ( - "txq0@wq0.0;" - "txq1@wq0.1;" - "txq2@wq0.2;" - "txq3@wq0.3;" - "txq4@wq0.4;" - "txq5@wq0.5;" - "rxq2@wq1.2;" - "rxq3@wq1.3;" - "rxq4@wq1.4;" - "rxq5@wq1.5;" - "rxq6@wq1.6;" - "rxq7@wq1.7" + "txq0@%s;" + "txq1@%s;" + "txq2@%s;" + "txq3@%s;" + "txq4@%s;" + "txq5@%s;" + "rxq2@%s;" + "rxq3@%s;" + "rxq4@%s;" + "rxq5@%s;" + "rxq6@%s;" + "rxq7@%s" + % ( + wqs[0], + wqs[1], + wqs[2], + wqs[3], + wqs[4], + wqs[5], + wqs[10], + wqs[11], + wqs[12], + wqs[13], + wqs[14], + wqs[15], + ) ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=8,client=1,dmas=[%s]'" % dmas @@ -1425,21 +1551,34 @@ class TestLoopbackVirtioUserServerModeDsa(TestCase): """ Test Case 21: Loopback packed ring inorder mergeable path multi-queues payload check with server mode and dsa kernel driver """ - self.DC.create_work_queue(work_queue_number=8, dsa_index=0) - self.DC.create_work_queue(work_queue_number=8, dsa_index=1) + wqs = self.DC.create_wq(wq_num=8, dsa_idxs=[0, 1]) dmas = ( - "txq0@wq0.0;" - "txq1@wq0.0;" - "txq2@wq0.0;" - "txq3@wq0.0;" - "txq4@wq0.1;" - "txq5@wq0.1;" - "rxq2@wq1.0;" - "rxq3@wq1.0;" - "rxq4@wq1.1;" - "rxq5@wq1.1;" - "rxq6@wq1.1;" - "rxq7@wq1.1" + "txq0@%s;" + "txq1@%s;" + "txq2@%s;" + "txq3@%s;" + "txq4@%s;" + "txq5@%s;" + "rxq2@%s;" + "rxq3@%s;" + "rxq4@%s;" + "rxq5@%s;" + "rxq6@%s;" + "rxq7@%s" + % ( + wqs[0], + wqs[0], + wqs[0], + wqs[0], + wqs[1], + wqs[1], + wqs[8], + wqs[8], + wqs[9], + wqs[9], + wqs[9], + wqs[9], + ) ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=8,client=1,dmas=[%s]'" % dmas @@ -1467,18 +1606,32 @@ class TestLoopbackVirtioUserServerModeDsa(TestCase): self.vhost_user_pmd.quit() dmas = ( - "txq0@wq0.0;" - "txq1@wq0.1;" - "txq2@wq0.2;" - "txq3@wq0.3;" - "txq4@wq0.4;" - "txq5@wq0.5;" - "rxq2@wq1.2;" - "rxq3@wq1.3;" - "rxq4@wq1.4;" - "rxq5@wq1.5;" - "rxq6@wq1.6;" - "rxq7@wq1.7" + "txq0@%s;" + "txq1@%s;" + "txq2@%s;" + "txq3@%s;" + "txq4@%s;" + "txq5@%s;" + "rxq2@%s;" + "rxq3@%s;" + "rxq4@%s;" + "rxq5@%s;" + "rxq6@%s;" + "rxq7@%s" + % ( + wqs[0], + wqs[1], + wqs[2], + wqs[3], + wqs[4], + wqs[5], + wqs[10], + wqs[11], + wqs[12], + wqs[13], + wqs[14], + wqs[15], + ) ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=8,client=1,dmas=[%s]'" % dmas @@ -1502,21 +1655,34 @@ class TestLoopbackVirtioUserServerModeDsa(TestCase): """ Test Case 22: Loopback packed ring mergeable path multi-queues payload check with server mode and dsa kernel driver """ - self.DC.create_work_queue(work_queue_number=8, dsa_index=0) - self.DC.create_work_queue(work_queue_number=8, dsa_index=1) + wqs = self.DC.create_wq(wq_num=8, dsa_idxs=[0, 1]) dmas = ( - "txq0@wq0.0;" - "txq1@wq0.0;" - "txq2@wq0.0;" - "txq3@wq0.0;" - "txq4@wq0.1;" - "txq5@wq0.1;" - "rxq2@wq1.0;" - "rxq3@wq1.0;" - "rxq4@wq1.1;" - "rxq5@wq1.1;" - "rxq6@wq1.1;" - "rxq7@wq1.1" + "txq0@%s;" + "txq1@%s;" + "txq2@%s;" + "txq3@%s;" + "txq4@%s;" + "txq5@%s;" + "rxq2@%s;" + "rxq3@%s;" + "rxq4@%s;" + "rxq5@%s;" + "rxq6@%s;" + "rxq7@%s" + % ( + wqs[0], + wqs[0], + wqs[0], + wqs[0], + wqs[1], + wqs[1], + wqs[8], + wqs[8], + wqs[9], + wqs[9], + wqs[9], + wqs[9], + ) ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=8,client=1,dmas=[%s]'" % dmas @@ -1544,18 +1710,32 @@ class TestLoopbackVirtioUserServerModeDsa(TestCase): self.vhost_user_pmd.quit() dmas = ( - "txq0@wq0.0;" - "txq1@wq0.1;" - "txq2@wq0.2;" - "txq3@wq0.3;" - "txq4@wq0.4;" - "txq5@wq0.5;" - "rxq2@wq1.2;" - "rxq3@wq1.3;" - "rxq4@wq1.4;" - "rxq5@wq1.5;" - "rxq6@wq1.6;" - "rxq7@wq1.7" + "txq0@%s;" + "txq1@%s;" + "txq2@%s;" + "txq3@%s;" + "txq4@%s;" + "txq5@%s;" + "rxq2@%s;" + "rxq3@%s;" + "rxq4@%s;" + "rxq5@%s;" + "rxq6@%s;" + "rxq7@%s" + % ( + wqs[0], + wqs[1], + wqs[2], + wqs[3], + wqs[4], + wqs[5], + wqs[10], + wqs[11], + wqs[12], + wqs[13], + wqs[14], + wqs[15], + ) ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=8,client=1,dmas=[%s]'" % dmas @@ -1579,21 +1759,34 @@ class TestLoopbackVirtioUserServerModeDsa(TestCase): """ Test Case 23: Loopback packed ring non-mergeable path multi-queues payload check with server mode and dsa kernel driver """ - self.DC.create_work_queue(work_queue_number=8, dsa_index=0) - self.DC.create_work_queue(work_queue_number=8, dsa_index=1) + wqs = self.DC.create_wq(wq_num=8, dsa_idxs=[0, 1]) dmas = ( - "txq0@wq0.0;" - "txq1@wq0.0;" - "txq2@wq0.0;" - "txq3@wq0.0;" - "txq4@wq0.1;" - "txq5@wq0.1;" - "rxq2@wq1.0;" - "rxq3@wq1.0;" - "rxq4@wq1.1;" - "rxq5@wq1.1;" - "rxq6@wq1.1;" - "rxq7@wq1.1" + "txq0@%s;" + "txq1@%s;" + "txq2@%s;" + "txq3@%s;" + "txq4@%s;" + "txq5@%s;" + "rxq2@%s;" + "rxq3@%s;" + "rxq4@%s;" + "rxq5@%s;" + "rxq6@%s;" + "rxq7@%s" + % ( + wqs[0], + wqs[0], + wqs[0], + wqs[0], + wqs[1], + wqs[1], + wqs[8], + wqs[8], + wqs[9], + wqs[9], + wqs[9], + wqs[9], + ) ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=8,client=1,dmas=[%s]'" % dmas @@ -1621,18 +1814,32 @@ class TestLoopbackVirtioUserServerModeDsa(TestCase): self.vhost_user_pmd.quit() dmas = ( - "txq0@wq0.0;" - "txq1@wq0.1;" - "txq2@wq0.2;" - "txq3@wq0.3;" - "txq4@wq0.4;" - "txq5@wq0.5;" - "rxq2@wq1.2;" - "rxq3@wq1.3;" - "rxq4@wq1.4;" - "rxq5@wq1.5;" - "rxq6@wq1.6;" - "rxq7@wq1.7" + "txq0@%s;" + "txq1@%s;" + "txq2@%s;" + "txq3@%s;" + "txq4@%s;" + "txq5@%s;" + "rxq2@%s;" + "rxq3@%s;" + "rxq4@%s;" + "rxq5@%s;" + "rxq6@%s;" + "rxq7@%s" + % ( + wqs[0], + wqs[1], + wqs[2], + wqs[3], + wqs[4], + wqs[5], + wqs[10], + wqs[11], + wqs[12], + wqs[13], + wqs[14], + wqs[15], + ) ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=8,client=1,dmas=[%s]'" % dmas @@ -1656,21 +1863,34 @@ class TestLoopbackVirtioUserServerModeDsa(TestCase): """ Test Case 24: Loopback packed ring inorder non-mergeable path multi-queues payload check with server mode and dsa kernel driver """ - self.DC.create_work_queue(work_queue_number=8, dsa_index=0) - self.DC.create_work_queue(work_queue_number=8, dsa_index=1) + wqs = self.DC.create_wq(wq_num=8, dsa_idxs=[0, 1]) dmas = ( - "txq0@wq0.0;" - "txq1@wq0.0;" - "txq2@wq0.0;" - "txq3@wq0.0;" - "txq4@wq0.1;" - "txq5@wq0.1;" - "rxq2@wq1.0;" - "rxq3@wq1.0;" - "rxq4@wq1.1;" - "rxq5@wq1.1;" - "rxq6@wq1.1;" - "rxq7@wq1.1" + "txq0@%s;" + "txq1@%s;" + "txq2@%s;" + "txq3@%s;" + "txq4@%s;" + "txq5@%s;" + "rxq2@%s;" + "rxq3@%s;" + "rxq4@%s;" + "rxq5@%s;" + "rxq6@%s;" + "rxq7@%s" + % ( + wqs[0], + wqs[0], + wqs[0], + wqs[0], + wqs[1], + wqs[1], + wqs[8], + wqs[8], + wqs[9], + wqs[9], + wqs[9], + wqs[9], + ) ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=8,client=1,dmas=[%s]'" % dmas @@ -1698,18 +1918,32 @@ class TestLoopbackVirtioUserServerModeDsa(TestCase): self.vhost_user_pmd.quit() dmas = ( - "txq0@wq0.0;" - "txq1@wq0.1;" - "txq2@wq0.2;" - "txq3@wq0.3;" - "txq4@wq0.4;" - "txq5@wq0.5;" - "rxq2@wq1.2;" - "rxq3@wq1.3;" - "rxq4@wq1.4;" - "rxq5@wq1.5;" - "rxq6@wq1.6;" - "rxq7@wq1.7" + "txq0@%s;" + "txq1@%s;" + "txq2@%s;" + "txq3@%s;" + "txq4@%s;" + "txq5@%s;" + "rxq2@%s;" + "rxq3@%s;" + "rxq4@%s;" + "rxq5@%s;" + "rxq6@%s;" + "rxq7@%s" + % ( + wqs[0], + wqs[1], + wqs[2], + wqs[3], + wqs[4], + wqs[5], + wqs[10], + wqs[11], + wqs[12], + wqs[13], + wqs[14], + wqs[15], + ) ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=8,client=1,dmas=[%s]'" % dmas @@ -1733,21 +1967,34 @@ class TestLoopbackVirtioUserServerModeDsa(TestCase): """ Test Case 25: Loopback packed ring vectorized path multi-queues payload check with server mode and dsa kernel driver """ - self.DC.create_work_queue(work_queue_number=8, dsa_index=0) - self.DC.create_work_queue(work_queue_number=8, dsa_index=1) + wqs = self.DC.create_wq(wq_num=8, dsa_idxs=[0, 1]) dmas = ( - "txq0@wq0.0;" - "txq1@wq0.0;" - "txq2@wq0.0;" - "txq3@wq0.0;" - "txq4@wq0.1;" - "txq5@wq0.1;" - "rxq2@wq1.0;" - "rxq3@wq1.0;" - "rxq4@wq1.1;" - "rxq5@wq1.1;" - "rxq6@wq1.1;" - "rxq7@wq1.1" + "txq0@%s;" + "txq1@%s;" + "txq2@%s;" + "txq3@%s;" + "txq4@%s;" + "txq5@%s;" + "rxq2@%s;" + "rxq3@%s;" + "rxq4@%s;" + "rxq5@%s;" + "rxq6@%s;" + "rxq7@%s" + % ( + wqs[0], + wqs[0], + wqs[0], + wqs[0], + wqs[1], + wqs[1], + wqs[8], + wqs[8], + wqs[9], + wqs[9], + wqs[9], + wqs[9], + ) ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=8,client=1,dmas=[%s]'" % dmas @@ -1775,18 +2022,32 @@ class TestLoopbackVirtioUserServerModeDsa(TestCase): self.vhost_user_pmd.quit() dmas = ( - "txq0@wq0.0;" - "txq1@wq0.1;" - "txq2@wq0.2;" - "txq3@wq0.3;" - "txq4@wq0.4;" - "txq5@wq0.5;" - "rxq2@wq1.2;" - "rxq3@wq1.3;" - "rxq4@wq1.4;" - "rxq5@wq1.5;" - "rxq6@wq1.6;" - "rxq7@wq1.7" + "txq0@%s;" + "txq1@%s;" + "txq2@%s;" + "txq3@%s;" + "txq4@%s;" + "txq5@%s;" + "rxq2@%s;" + "rxq3@%s;" + "rxq4@%s;" + "rxq5@%s;" + "rxq6@%s;" + "rxq7@%s" + % ( + wqs[0], + wqs[1], + wqs[2], + wqs[3], + wqs[4], + wqs[5], + wqs[10], + wqs[11], + wqs[12], + wqs[13], + wqs[14], + wqs[15], + ) ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=8,client=1,dmas=[%s]'" % dmas @@ -1810,21 +2071,34 @@ class TestLoopbackVirtioUserServerModeDsa(TestCase): """ Test Case 26: Loopback packed ring vectorized path and ring size is not power of 2 multi-queues payload check with server mode and dsa kernel driver """ - self.DC.create_work_queue(work_queue_number=8, dsa_index=0) - self.DC.create_work_queue(work_queue_number=8, dsa_index=1) + wqs = self.DC.create_wq(wq_num=8, dsa_idxs=[0, 1]) dmas = ( - "txq0@wq0.0;" - "txq1@wq0.0;" - "txq2@wq0.0;" - "txq3@wq0.0;" - "txq4@wq0.1;" - "txq5@wq0.1;" - "rxq2@wq1.0;" - "rxq3@wq1.0;" - "rxq4@wq1.1;" - "rxq5@wq1.1;" - "rxq6@wq1.1;" - "rxq7@wq1.1" + "txq0@%s;" + "txq1@%s;" + "txq2@%s;" + "txq3@%s;" + "txq4@%s;" + "txq5@%s;" + "rxq2@%s;" + "rxq3@%s;" + "rxq4@%s;" + "rxq5@%s;" + "rxq6@%s;" + "rxq7@%s" + % ( + wqs[0], + wqs[0], + wqs[0], + wqs[0], + wqs[1], + wqs[1], + wqs[8], + wqs[8], + wqs[9], + wqs[9], + wqs[9], + wqs[9], + ) ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=8,client=1,dmas=[%s]'" % dmas @@ -1852,18 +2126,32 @@ class TestLoopbackVirtioUserServerModeDsa(TestCase): self.vhost_user_pmd.quit() dmas = ( - "txq0@wq0.0;" - "txq1@wq0.1;" - "txq2@wq0.2;" - "txq3@wq0.3;" - "txq4@wq0.4;" - "txq5@wq0.5;" - "rxq2@wq1.2;" - "rxq3@wq1.3;" - "rxq4@wq1.4;" - "rxq5@wq1.5;" - "rxq6@wq1.6;" - "rxq7@wq1.7" + "txq0@%s;" + "txq1@%s;" + "txq2@%s;" + "txq3@%s;" + "txq4@%s;" + "txq5@%s;" + "rxq2@%s;" + "rxq3@%s;" + "rxq4@%s;" + "rxq5@%s;" + "rxq6@%s;" + "rxq7@%s" + % ( + wqs[0], + wqs[1], + wqs[2], + wqs[3], + wqs[4], + wqs[5], + wqs[10], + wqs[11], + wqs[12], + wqs[13], + wqs[14], + wqs[15], + ) ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=8,client=1,dmas=[%s]'" % dmas @@ -1887,45 +2175,52 @@ class TestLoopbackVirtioUserServerModeDsa(TestCase): """ Test Case 27: PV split and packed ring server mode test txonly mode with dsa dpdk and kernel driver """ - self.DC.create_work_queue(work_queue_number=8, dsa_index=0) - self.DC.create_work_queue(work_queue_number=8, dsa_index=1) - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=2, + wqs = self.DC.create_wq(wq_num=8, dsa_idxs=[0, 1]) + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=2, driver_name="vfio-pci", - dsa_index_list=[2, 3], + dsa_idxs=[2, 3], socket=self.ports_socket, ) dmas = ( - "txq0@wq0.0;" - "txq1@wq0.0;" - "txq2@wq0.0;" - "txq3@wq0.0;" + "txq0@%s;" + "txq1@%s;" + "txq2@%s;" + "txq3@%s;" "txq4@%s-q0;" "txq5@%s-q0;" "rxq2@%s-q1;" "rxq3@%s-q1;" - "rxq4@wq1.1;" - "rxq5@wq1.1;" - "rxq6@wq1.1;" - "rxq7@wq1.1" + "rxq4@%s;" + "rxq5@%s;" + "rxq6@%s;" + "rxq7@%s" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + wqs[0], + wqs[0], + wqs[0], + wqs[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + wqs[8], + wqs[8], + wqs[8], + wqs[8], ) ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=8,client=1,dmas=[%s]'" % dmas ) vhost_param = "--nb-cores=4 --rxq=8 --txq=8 --txd=1024 --rxd=1024" - port_options = {self.use_dsa_list[0]: "max_queues=2"} + port_options = {dsas[0]: "max_queues=2"} self.start_vhost_testpmd( cores=self.vhost_core_list, eal_param=vhost_eal_param, param=vhost_param, no_pci=False, - ports=self.use_dsa_list[0:1], + ports=dsas[0:1], port_options=port_options, iova_mode="va", ) @@ -1967,8 +2262,6 @@ class TestLoopbackVirtioUserServerModeDsa(TestCase): """ self.dut.send_expect("killall -s INT %s" % self.testpmd_name, "#") self.dut.kill_all() - self.DC.reset_all_work_queue() - self.DC.bind_all_dsa_to_kernel() def tear_down_all(self): """ diff --git a/tests/TestSuite_pvp_vhost_async_multi_paths_performance_dsa.py b/tests/TestSuite_pvp_vhost_async_multi_paths_performance_dsa.py index 7b5077cb..13ab3d85 100644 --- a/tests/TestSuite_pvp_vhost_async_multi_paths_performance_dsa.py +++ b/tests/TestSuite_pvp_vhost_async_multi_paths_performance_dsa.py @@ -51,8 +51,6 @@ class TestPVPVhostAsyncMultiPathsPerformanceDsa(TestCase): """ self.dut.send_expect("killall -s INT %s" % self.testpmd_name, "#") self.dut.send_expect("rm -rf %s/vhost-net*" % self.base_dir, "#") - self.DC.reset_all_work_queue() - self.DC.bind_all_dsa_to_kernel() # Prepare the result table self.table_header = ["Frame"] self.table_header.append("Mode/RXD-TXD") @@ -273,8 +271,8 @@ class TestPVPVhostAsyncMultiPathsPerformanceDsa(TestCase): """ Test Case 1: pvp vhost async test with split ring inorder mergeable path using IDXD kernel driver """ - self.DC.create_work_queue(work_queue_number=1, dsa_index=0) - dmas = "txq0@wq0.0;rxq0@wq0.1" + wqs = self.DC.create_wq(wq_num=2, dsa_idxs=[0]) + dmas = "txq0@%s;rxq0@%s" % (wqs[0], wqs[1]) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net,queues=1,dmas=[%s]'" % dmas ) @@ -301,8 +299,8 @@ class TestPVPVhostAsyncMultiPathsPerformanceDsa(TestCase): """ Test Case 2: pvp vhost async test with split ring inorder non-mergeable path using IDXD kernel driver """ - self.DC.create_work_queue(work_queue_number=1, dsa_index=0) - dmas = "txq0@wq0.0;rxq0@wq0.1" + wqs = self.DC.create_wq(wq_num=2, dsa_idxs=[0]) + dmas = "txq0@%s;rxq0@%s" % (wqs[0], wqs[1]) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net,queues=1,dmas=[%s]'" % dmas ) @@ -329,8 +327,8 @@ class TestPVPVhostAsyncMultiPathsPerformanceDsa(TestCase): """ Test Case 3: pvp vhost async test with split ring mergeable path using IDXD kernel driver """ - self.DC.create_work_queue(work_queue_number=1, dsa_index=0) - dmas = "txq0@wq0.0;rxq0@wq0.1" + wqs = self.DC.create_wq(wq_num=2, dsa_idxs=[0]) + dmas = "txq0@%s;rxq0@%s" % (wqs[0], wqs[1]) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net,queues=1,dmas=[%s]'" % dmas ) @@ -357,8 +355,8 @@ class TestPVPVhostAsyncMultiPathsPerformanceDsa(TestCase): """ Test Case 4: pvp vhost async test with split ring non-mergeable path using IDXD kernel driver """ - self.DC.create_work_queue(work_queue_number=1, dsa_index=0) - dmas = "txq0@wq0.0;rxq0@wq0.1" + wqs = self.DC.create_wq(wq_num=2, dsa_idxs=[0]) + dmas = "txq0@%s;rxq0@%s" % (wqs[0], wqs[1]) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net,queues=1,dmas=[%s]'" % dmas ) @@ -385,8 +383,8 @@ class TestPVPVhostAsyncMultiPathsPerformanceDsa(TestCase): """ Test Case 5: pvp vhost async test with split ring vectorized path using IDXD kernel driver """ - self.DC.create_work_queue(work_queue_number=1, dsa_index=0) - dmas = "txq0@wq0.0;rxq0@wq0.1" + wqs = self.DC.create_wq(wq_num=2, dsa_idxs=[0]) + dmas = "txq0@%s;rxq0@%s" % (wqs[0], wqs[1]) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net,queues=1,dmas=[%s]'" % dmas ) @@ -413,8 +411,8 @@ class TestPVPVhostAsyncMultiPathsPerformanceDsa(TestCase): """ Test Case 6: pvp vhost async test with packed ring inorder mergeable path using IDXD kernel driver """ - self.DC.create_work_queue(work_queue_number=1, dsa_index=0) - dmas = "txq0@wq0.0;rxq0@wq0.1" + wqs = self.DC.create_wq(wq_num=2, dsa_idxs=[0]) + dmas = "txq0@%s;rxq0@%s" % (wqs[0], wqs[1]) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net,queues=1,dmas=[%s]'" % dmas ) @@ -441,8 +439,8 @@ class TestPVPVhostAsyncMultiPathsPerformanceDsa(TestCase): """ Test Case 7: pvp vhost async test with packed ring inorder non-mergeable path using IDXD kernel driver """ - self.DC.create_work_queue(work_queue_number=1, dsa_index=0) - dmas = "txq0@wq0.0;rxq0@wq0.1" + wqs = self.DC.create_wq(wq_num=2, dsa_idxs=[0]) + dmas = "txq0@%s;rxq0@%s" % (wqs[0], wqs[1]) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net,queues=1,dmas=[%s]'" % dmas ) @@ -469,8 +467,8 @@ class TestPVPVhostAsyncMultiPathsPerformanceDsa(TestCase): """ Test Case 8: pvp vhost async test with packed ring mergeable path using IDXD kernel driver """ - self.DC.create_work_queue(work_queue_number=1, dsa_index=0) - dmas = "txq0@wq0.0;rxq0@wq0.1" + wqs = self.DC.create_wq(wq_num=2, dsa_idxs=[0]) + dmas = "txq0@%s;rxq0@%s" % (wqs[0], wqs[1]) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net,queues=1,dmas=[%s]'" % dmas ) @@ -497,8 +495,8 @@ class TestPVPVhostAsyncMultiPathsPerformanceDsa(TestCase): """ Test Case 9: pvp vhost async test with packed ring non-mergeable path using IDXD kernel driver """ - self.DC.create_work_queue(work_queue_number=1, dsa_index=0) - dmas = "txq0@wq0.0;rxq0@wq0.1" + wqs = self.DC.create_wq(wq_num=2, dsa_idxs=[0]) + dmas = "txq0@%s;rxq0@%s" % (wqs[0], wqs[1]) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net,queues=1,dmas=[%s]'" % dmas ) @@ -525,8 +523,8 @@ class TestPVPVhostAsyncMultiPathsPerformanceDsa(TestCase): """ Test Case 10: pvp vhost async test with packed ring vectorized path using IDXD kernel driver """ - self.DC.create_work_queue(work_queue_number=1, dsa_index=0) - dmas = "txq0@wq0.0;rxq0@wq0.1" + wqs = self.DC.create_wq(wq_num=2, dsa_idxs=[0]) + dmas = "txq0@%s;rxq0@%s" % (wqs[0], wqs[1]) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net,queues=1,dmas=[%s]'" % dmas ) @@ -553,17 +551,17 @@ class TestPVPVhostAsyncMultiPathsPerformanceDsa(TestCase): """ Test Case 11: pvp vhost async test with split ring inorder mergeable path using vfio-pci driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) - dmas = "txq0@%s-q0;" "rxq0@%s-q1" % (self.use_dsa_list[0], self.use_dsa_list[0]) + dmas = "txq0@%s-q0;rxq0@%s-q1" % (dsas[0], dsas[0]) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net,queues=1,dmas=[%s]'" % dmas ) vhost_param = "--nb-cores=1 --txd=1024 --rxd=1024" ports = [self.dut.ports_info[self.dut_ports[0]]["pci"]] - ports.append(self.use_dsa_list[0]) - port_options = {self.use_dsa_list[0]: "max_queues=2"} + ports.append(dsas[0]) + port_options = {dsas[0]: "max_queues=2"} self.start_vhost_user_testpmd( eal_param=vhost_eal_param, param=vhost_param, @@ -588,17 +586,17 @@ class TestPVPVhostAsyncMultiPathsPerformanceDsa(TestCase): """ Test Case 12: pvp vhost async test with split ring inorder non-mergeable path using vfio-pci driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) - dmas = "txq0@%s-q0;" "rxq0@%s-q1" % (self.use_dsa_list[0], self.use_dsa_list[0]) + dmas = "txq0@%s-q0;rxq0@%s-q1" % (dsas[0], dsas[0]) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net,queues=1,dmas=[%s]'" % dmas ) vhost_param = "--nb-cores=1 --txd=1024 --rxd=1024" ports = [self.dut.ports_info[self.dut_ports[0]]["pci"]] - ports.append(self.use_dsa_list[0]) - port_options = {self.use_dsa_list[0]: "max_queues=2"} + ports.append(dsas[0]) + port_options = {dsas[0]: "max_queues=2"} self.start_vhost_user_testpmd( eal_param=vhost_eal_param, param=vhost_param, @@ -623,17 +621,17 @@ class TestPVPVhostAsyncMultiPathsPerformanceDsa(TestCase): """ Test Case 13: pvp vhost async test with split ring mergeable path using vfio-pci driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) - dmas = "txq0@%s-q0;" "rxq0@%s-q1" % (self.use_dsa_list[0], self.use_dsa_list[0]) + dmas = "txq0@%s-q0;rxq0@%s-q1" % (dsas[0], dsas[0]) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net,queues=1,dmas=[%s]'" % dmas ) vhost_param = "--nb-cores=1 --txd=1024 --rxd=1024" ports = [self.dut.ports_info[self.dut_ports[0]]["pci"]] - ports.append(self.use_dsa_list[0]) - port_options = {self.use_dsa_list[0]: "max_queues=2"} + ports.append(dsas[0]) + port_options = {dsas[0]: "max_queues=2"} self.start_vhost_user_testpmd( eal_param=vhost_eal_param, param=vhost_param, @@ -658,17 +656,17 @@ class TestPVPVhostAsyncMultiPathsPerformanceDsa(TestCase): """ Test Case 14: pvp vhost async test with split ring non-mergeable path using vfio-pci driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) - dmas = "txq0@%s-q0;" "rxq0@%s-q1" % (self.use_dsa_list[0], self.use_dsa_list[0]) + dmas = "txq0@%s-q0;rxq0@%s-q1" % (dsas[0], dsas[0]) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net,queues=1,dmas=[%s]'" % dmas ) vhost_param = "--nb-cores=1 --txd=1024 --rxd=1024" ports = [self.dut.ports_info[self.dut_ports[0]]["pci"]] - ports.append(self.use_dsa_list[0]) - port_options = {self.use_dsa_list[0]: "max_queues=2"} + ports.append(dsas[0]) + port_options = {dsas[0]: "max_queues=2"} self.start_vhost_user_testpmd( eal_param=vhost_eal_param, param=vhost_param, @@ -693,17 +691,17 @@ class TestPVPVhostAsyncMultiPathsPerformanceDsa(TestCase): """ Test Case 15: pvp vhost async test with split ring vectorized_rx path using vfio-pci driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) - dmas = "txq0@%s-q0;" "rxq0@%s-q1" % (self.use_dsa_list[0], self.use_dsa_list[0]) + dmas = "txq0@%s-q0;rxq0@%s-q1" % (dsas[0], dsas[0]) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net,queues=1,dmas=[%s]'" % dmas ) vhost_param = "--nb-cores=1 --txd=1024 --rxd=1024" ports = [self.dut.ports_info[self.dut_ports[0]]["pci"]] - ports.append(self.use_dsa_list[0]) - port_options = {self.use_dsa_list[0]: "max_queues=2"} + ports.append(dsas[0]) + port_options = {dsas[0]: "max_queues=2"} self.start_vhost_user_testpmd( eal_param=vhost_eal_param, param=vhost_param, @@ -728,17 +726,17 @@ class TestPVPVhostAsyncMultiPathsPerformanceDsa(TestCase): """ Test Case 16: pvp vhost async test with packed ring inorder mergeable path using vfio-pci driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) - dmas = "txq0@%s-q0;" "rxq0@%s-q1" % (self.use_dsa_list[0], self.use_dsa_list[0]) + dmas = "txq0@%s-q0;rxq0@%s-q1" % (dsas[0], dsas[0]) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net,queues=1,dmas=[%s]'" % dmas ) vhost_param = "--nb-cores=1 --txd=1024 --rxd=1024" ports = [self.dut.ports_info[self.dut_ports[0]]["pci"]] - ports.append(self.use_dsa_list[0]) - port_options = {self.use_dsa_list[0]: "max_queues=2"} + ports.append(dsas[0]) + port_options = {dsas[0]: "max_queues=2"} self.start_vhost_user_testpmd( eal_param=vhost_eal_param, param=vhost_param, @@ -763,17 +761,17 @@ class TestPVPVhostAsyncMultiPathsPerformanceDsa(TestCase): """ Test Case 17: pvp vhost async test with packed ring inorder non-mergeable path using vfio-pci driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) - dmas = "txq0@%s-q0;" "rxq0@%s-q1" % (self.use_dsa_list[0], self.use_dsa_list[0]) + dmas = "txq0@%s-q0;rxq0@%s-q1" % (dsas[0], dsas[0]) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net,queues=1,dmas=[%s]'" % dmas ) vhost_param = "--nb-cores=1 --txd=1024 --rxd=1024" ports = [self.dut.ports_info[self.dut_ports[0]]["pci"]] - ports.append(self.use_dsa_list[0]) - port_options = {self.use_dsa_list[0]: "max_queues=2"} + ports.append(dsas[0]) + port_options = {dsas[0]: "max_queues=2"} self.start_vhost_user_testpmd( eal_param=vhost_eal_param, param=vhost_param, @@ -798,17 +796,17 @@ class TestPVPVhostAsyncMultiPathsPerformanceDsa(TestCase): """ Test Case 18: pvp vhost async test with packed ring mergeable path using vfio-pci driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) - dmas = "txq0@%s-q0;" "rxq0@%s-q1" % (self.use_dsa_list[0], self.use_dsa_list[0]) + dmas = "txq0@%s-q0;rxq0@%s-q1" % (dsas[0], dsas[0]) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net,queues=1,dmas=[%s]'" % dmas ) vhost_param = "--nb-cores=1 --txd=1024 --rxd=1024" ports = [self.dut.ports_info[self.dut_ports[0]]["pci"]] - ports.append(self.use_dsa_list[0]) - port_options = {self.use_dsa_list[0]: "max_queues=2"} + ports.append(dsas[0]) + port_options = {dsas[0]: "max_queues=2"} self.start_vhost_user_testpmd( eal_param=vhost_eal_param, param=vhost_param, @@ -833,17 +831,17 @@ class TestPVPVhostAsyncMultiPathsPerformanceDsa(TestCase): """ Test Case 19: pvp vhost async test with packed ring non-mergeable path using vfio-pci driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) - dmas = "txq0@%s-q0;" "rxq0@%s-q1" % (self.use_dsa_list[0], self.use_dsa_list[0]) + dmas = "txq0@%s-q0;rxq0@%s-q1" % (dsas[0], dsas[0]) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net,queues=1,dmas=[%s]'" % dmas ) vhost_param = "--nb-cores=1 --txd=1024 --rxd=1024" ports = [self.dut.ports_info[self.dut_ports[0]]["pci"]] - ports.append(self.use_dsa_list[0]) - port_options = {self.use_dsa_list[0]: "max_queues=2"} + ports.append(dsas[0]) + port_options = {dsas[0]: "max_queues=2"} self.start_vhost_user_testpmd( eal_param=vhost_eal_param, param=vhost_param, @@ -868,17 +866,17 @@ class TestPVPVhostAsyncMultiPathsPerformanceDsa(TestCase): """ Test Case 20: pvp vhost async test with split ring vectorized path using vfio-pci driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) - dmas = "txq0@%s-q0;" "rxq0@%s-q1" % (self.use_dsa_list[0], self.use_dsa_list[0]) + dmas = "txq0@%s-q0;rxq0@%s-q1" % (dsas[0], dsas[0]) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net,queues=1,dmas=[%s]'" % dmas ) vhost_param = "--nb-cores=1 --txd=1024 --rxd=1024" ports = [self.dut.ports_info[self.dut_ports[0]]["pci"]] - ports.append(self.use_dsa_list[0]) - port_options = {self.use_dsa_list[0]: "max_queues=2"} + ports.append(dsas[0]) + port_options = {dsas[0]: "max_queues=2"} self.start_vhost_user_testpmd( eal_param=vhost_eal_param, param=vhost_param, @@ -909,8 +907,6 @@ class TestPVPVhostAsyncMultiPathsPerformanceDsa(TestCase): """ self.dut.send_expect("killall -s INT %s" % self.testpmd_name, "#") self.dut.send_expect("rm -rf %s/vhost-net*" % self.base_dir, "#") - self.DC.reset_all_work_queue() - self.DC.bind_all_dsa_to_kernel() def tear_down_all(self): """ diff --git a/tests/TestSuite_pvp_vhost_async_virtio_pmd_perf_dsa.py b/tests/TestSuite_pvp_vhost_async_virtio_pmd_perf_dsa.py index 9a0b04ce..2d2471ef 100644 --- a/tests/TestSuite_pvp_vhost_async_virtio_pmd_perf_dsa.py +++ b/tests/TestSuite_pvp_vhost_async_virtio_pmd_perf_dsa.py @@ -22,6 +22,7 @@ class TestPVPVhostAsyncVirtioPmdPerfDsa(TestCase): """ Run at the start of each test suite. """ + self.frame_sizes = [64, 128, 256, 512, 1024, 1280, 1518, 2048, 4096] self.vhost_user = self.dut.new_session(suite="vhost-user") self.vhost_user_pmd = PmdOutput(self.dut, self.vhost_user) self.dut_ports = self.dut.get_ports() @@ -51,8 +52,6 @@ class TestPVPVhostAsyncVirtioPmdPerfDsa(TestCase): self.dut.send_expect("killall -s INT %s" % self.testpmd_name, "#") self.dut.send_expect("killall -s INT qemu-system-x86_64", "#") self.dut.send_expect("rm -rf %s/vhost-net*" % self.base_dir, "#") - self.DC.reset_all_work_queue() - self.DC.bind_all_dsa_to_kernel() # Prepare the result table self.table_header = ["Frame"] self.table_header.append("Mode/RXD-TXD") @@ -104,7 +103,7 @@ class TestPVPVhostAsyncVirtioPmdPerfDsa(TestCase): "mq=on,vectors=%s," % (2 + self.queues * 2) if self.queues > 1 else "" ) vm_params["opt_settings"] = ( - "disable-modern=false,mrg_rxbuf=on,%srx_queue_size=1024,tx_queue_size=1024,csum=off,guest_csum=off,gso= off,host_tso4=off,guest_tso4=off,guest_ecn=off%s" + "disable-modern=false,mrg_rxbuf=on,%srx_queue_size=1024,tx_queue_size=1024,csum=off,guest_csum=off,gso=off,host_tso4=off,guest_tso4=off,guest_ecn=off%s" % (mq_param, packed_param) ) self.vm.set_vm_device(**vm_params) @@ -134,11 +133,7 @@ class TestPVPVhostAsyncVirtioPmdPerfDsa(TestCase): """ Send packet with packet generator and verify """ - if "4c_4q" or "4c_8q" not in self.running_case: - frame_sizes = [64, 128, 256, 512, 1024, 1280, 1518] - else: - frame_sizes = [64, 128, 256, 512, 1024, 1280, 1518, 2048, 4096] - for frame_size in frame_sizes: + for frame_size in self.frame_sizes: payload_size = frame_size - self.headers_size tgen_input = [] self.throughput[frame_size] = dict() @@ -308,10 +303,7 @@ class TestPVPVhostAsyncVirtioPmdPerfDsa(TestCase): "--socket-mem 8192 --vdev 'net_vhost0,iface=vhost-net,queues=%d,dmas=[%s]'" % (self.queues, self.dmas) ) - if "4c_4q" or "4c_8q" not in self.running_case: - max_len_param = "" - else: - max_len_param = "--max-pkt-len=5200 --tx-offloads=0x00008000" + max_len_param = "--max-pkt-len=5200 --tx-offloads=0x00008000" vhost_param = ( "--nb-cores=%d --txq=%d --rxq=%d --txd=2048 --rxd=2048 %s --forward-mode=mac -a" % (self.nb_cores, self.queues, self.queues, max_len_param) @@ -348,9 +340,9 @@ class TestPVPVhostAsyncVirtioPmdPerfDsa(TestCase): """ Test Case 1: pvp split ring vhost async test with 1core 1queue using idxd kernel driver """ - self.DC.create_work_queue(work_queue_number=2, dsa_index=0) + wqs = self.DC.create_wq(wq_num=2, dsa_idxs=[0]) self.queues = 1 - self.dmas = "txq0@wq0.0;rxq0@wq0.1" + self.dmas = "txq0@%s;rxq0@%s" % (wqs[0], wqs[1]) self.nb_cores = 1 ports = [self.dut.ports_info[self.dut_ports[0]]["pci"]] self.perf_test( @@ -361,9 +353,9 @@ class TestPVPVhostAsyncVirtioPmdPerfDsa(TestCase): """ Test Case 2: pvp split ring vhost async test with 1core 2queue using idxd kernel driver """ - self.DC.create_work_queue(work_queue_number=4, dsa_index=0) + wqs = self.DC.create_wq(wq_num=4, dsa_idxs=[0]) self.queues = 2 - self.dmas = "txq0@wq0.0;rxq0@wq0.1;txq1@wq0.2;rxq1@wq0.3" + self.dmas = "txq0@%s;rxq0@%s;txq1@%s;rxq1@%s" % (wqs[0], wqs[1], wqs[2], wqs[3]) self.nb_cores = 1 ports = [self.dut.ports_info[self.dut_ports[0]]["pci"]] self.perf_test( @@ -374,9 +366,9 @@ class TestPVPVhostAsyncVirtioPmdPerfDsa(TestCase): """ Test Case 3: pvp split ring vhost async test with 2core 2queue using idxd kernel driver """ - self.DC.create_work_queue(work_queue_number=4, dsa_index=0) + wqs = self.DC.create_wq(wq_num=4, dsa_idxs=[0]) self.queues = 2 - self.dmas = "txq0@wq0.0;rxq0@wq0.1;txq1@wq0.2;rxq1@wq0.3" + self.dmas = "txq0@%s;rxq0@%s;txq1@%s;rxq1@%s" % (wqs[0], wqs[1], wqs[2], wqs[3]) self.nb_cores = 2 ports = [self.dut.ports_info[self.dut_ports[0]]["pci"]] self.perf_test( @@ -387,17 +379,17 @@ class TestPVPVhostAsyncVirtioPmdPerfDsa(TestCase): """ Test Case 4: pvp split ring vhost async test with 2core 4queue using idxd kernel driver """ - self.DC.create_work_queue(work_queue_number=8, dsa_index=0) + wqs = self.DC.create_wq(wq_num=8, dsa_idxs=[0]) self.queues = 4 self.dmas = ( - "txq0@wq0.0;" - "rxq0@wq0.1;" - "txq1@wq0.2;" - "rxq1@wq0.3;" - "txq2@wq0.4;" - "rxq2@wq0.5;" - "txq3@wq0.6;" - "rxq3@wq0.7" + "txq0@%s;" + "rxq0@%s;" + "txq1@%s;" + "rxq1@%s;" + "txq2@%s;" + "rxq2@%s;" + "txq3@%s;" + "rxq3@%s" % (wqs[0], wqs[1], wqs[2], wqs[3], wqs[4], wqs[5], wqs[6], wqs[7]) ) self.nb_cores = 2 ports = [self.dut.ports_info[self.dut_ports[0]]["pci"]] @@ -409,17 +401,17 @@ class TestPVPVhostAsyncVirtioPmdPerfDsa(TestCase): """ Test Case 5: pvp split ring vhost async test with 4core 4queue using idxd kernel driver """ - self.DC.create_work_queue(work_queue_number=8, dsa_index=0) + wqs = self.DC.create_wq(wq_num=8, dsa_idxs=[0]) self.queues = 4 self.dmas = ( - "txq0@wq0.0;" - "rxq0@wq0.1;" - "txq1@wq0.2;" - "rxq1@wq0.3;" - "txq2@wq0.4;" - "rxq2@wq0.5;" - "txq3@wq0.6;" - "rxq3@wq0.7" + "txq0@%s;" + "rxq0@%s;" + "txq1@%s;" + "rxq1@%s;" + "txq2@%s;" + "rxq2@%s;" + "txq3@%s;" + "rxq3@%s" % (wqs[0], wqs[1], wqs[2], wqs[3], wqs[4], wqs[5], wqs[6], wqs[7]) ) self.nb_cores = 4 ports = [self.dut.ports_info[self.dut_ports[0]]["pci"]] @@ -431,25 +423,43 @@ class TestPVPVhostAsyncVirtioPmdPerfDsa(TestCase): """ Test Case 6: pvp split ring vhost async test with 4core 8queue using idxd kernel driver """ - self.DC.create_work_queue(work_queue_number=8, dsa_index=0) + wqs = self.DC.create_wq(wq_num=8, dsa_idxs=[0]) self.queues = 8 self.dmas = ( - "txq0@wq0.0;" - "rxq0@wq0.0;" - "txq1@wq0.1;" - "rxq1@wq0.1;" - "txq2@wq0.2;" - "rxq2@wq0.2;" - "txq3@wq0.3;" - "rxq3@wq0.3;" - "txq4@wq0.4;" - "rxq4@wq0.4;" - "txq5@wq0.5;" - "rxq5@wq0.5;" - "txq6@wq0.6;" - "rxq6@wq0.6;" - "txq7@wq0.7;" - "rxq7@wq0.7" + "txq0@%s;" + "rxq0@%s;" + "txq1@%s;" + "rxq1@%s;" + "txq2@%s;" + "rxq2@%s;" + "txq3@%s;" + "rxq3@%s;" + "txq4@%s;" + "rxq4@%s;" + "txq5@%s;" + "rxq5@%s;" + "txq6@%s;" + "rxq6@%s;" + "txq7@%s;" + "rxq7@%s" + % ( + wqs[0], + wqs[0], + wqs[1], + wqs[1], + wqs[2], + wqs[2], + wqs[3], + wqs[3], + wqs[4], + wqs[4], + wqs[5], + wqs[5], + wqs[6], + wqs[6], + wqs[7], + wqs[7], + ) ) self.nb_cores = 4 ports = [self.dut.ports_info[self.dut_ports[0]]["pci"]] @@ -461,9 +471,9 @@ class TestPVPVhostAsyncVirtioPmdPerfDsa(TestCase): """ Test Case 7: pvp packed ring vhost async test with 1core 1queue using idxd kernel driver """ - self.DC.create_work_queue(work_queue_number=2, dsa_index=0) + wqs = self.DC.create_wq(wq_num=2, dsa_idxs=[0]) self.queues = 1 - self.dmas = "txq0@wq0.0;rxq0@wq0.1" + self.dmas = "txq0@%s;rxq0@%s" % (wqs[0], wqs[1]) self.nb_cores = 1 ports = [self.dut.ports_info[self.dut_ports[0]]["pci"]] self.perf_test( @@ -474,9 +484,9 @@ class TestPVPVhostAsyncVirtioPmdPerfDsa(TestCase): """ Test Case 8: pvp packed ring vhost async test with 1core 2queue using idxd kernel driver """ - self.DC.create_work_queue(work_queue_number=4, dsa_index=0) + wqs = self.DC.create_wq(wq_num=4, dsa_idxs=[0]) self.queues = 2 - self.dmas = "txq0@wq0.0;rxq0@wq0.1;txq1@wq0.2;rxq1@wq0.3" + self.dmas = "txq0@%s;rxq0@%s;txq1@%s;rxq1@%s" % (wqs[0], wqs[1], wqs[2], wqs[3]) self.nb_cores = 1 ports = [self.dut.ports_info[self.dut_ports[0]]["pci"]] self.perf_test( @@ -487,9 +497,9 @@ class TestPVPVhostAsyncVirtioPmdPerfDsa(TestCase): """ Test Case 9: pvp packed ring vhost async test with 2core 2queue using idxd kernel driver """ - self.DC.create_work_queue(work_queue_number=4, dsa_index=0) + wqs = self.DC.create_wq(wq_num=4, dsa_idxs=[0]) self.queues = 2 - self.dmas = "txq0@wq0.0;rxq0@wq0.1;txq1@wq0.2;rxq1@wq0.3" + self.dmas = "txq0@%s;rxq0@%s;txq1@%s;rxq1@%s" % (wqs[0], wqs[1], wqs[2], wqs[3]) self.nb_cores = 2 ports = [self.dut.ports_info[self.dut_ports[0]]["pci"]] self.perf_test( @@ -500,17 +510,17 @@ class TestPVPVhostAsyncVirtioPmdPerfDsa(TestCase): """ Test Case 10: pvp packed ring vhost async test with 2core 4queue using idxd kernel driver """ - self.DC.create_work_queue(work_queue_number=8, dsa_index=0) + wqs = self.DC.create_wq(wq_num=8, dsa_idxs=[0]) self.queues = 4 self.dmas = ( - "txq0@wq0.0;" - "rxq0@wq0.1;" - "txq1@wq0.2;" - "rxq1@wq0.3;" - "txq2@wq0.4;" - "rxq2@wq0.5;" - "txq3@wq0.6;" - "rxq3@wq0.7" + "txq0@%s;" + "rxq0@%s;" + "txq1@%s;" + "rxq1@%s;" + "txq2@%s;" + "rxq2@%s;" + "txq3@%s;" + "rxq3@%s" % (wqs[0], wqs[1], wqs[2], wqs[3], wqs[4], wqs[5], wqs[6], wqs[7]) ) self.nb_cores = 2 ports = [self.dut.ports_info[self.dut_ports[0]]["pci"]] @@ -522,17 +532,17 @@ class TestPVPVhostAsyncVirtioPmdPerfDsa(TestCase): """ Test Case 11: pvp packed ring vhost async test with 4core 4queue using idxd kernel driver """ - self.DC.create_work_queue(work_queue_number=8, dsa_index=0) + wqs = self.DC.create_wq(wq_num=8, dsa_idxs=[0]) self.queues = 4 self.dmas = ( - "txq0@wq0.0;" - "rxq0@wq0.1;" - "txq1@wq0.2;" - "rxq1@wq0.3;" - "txq2@wq0.4;" - "rxq2@wq0.5;" - "txq3@wq0.6;" - "rxq3@wq0.7" + "txq0@%s;" + "rxq0@%s;" + "txq1@%s;" + "rxq1@%s;" + "txq2@%s;" + "rxq2@%s;" + "txq3@%s;" + "rxq3@%s" % (wqs[0], wqs[1], wqs[2], wqs[3], wqs[4], wqs[5], wqs[6], wqs[7]) ) self.nb_cores = 4 ports = [self.dut.ports_info[self.dut_ports[0]]["pci"]] @@ -544,25 +554,43 @@ class TestPVPVhostAsyncVirtioPmdPerfDsa(TestCase): """ Test Case 12: pvp packed ring vhost async test with 4core 8queue using idxd kernel driver """ - self.DC.create_work_queue(work_queue_number=8, dsa_index=0) + wqs = self.DC.create_wq(wq_num=8, dsa_idxs=[0]) self.queues = 8 self.dmas = ( - "txq0@wq0.0;" - "rxq0@wq0.0;" - "txq1@wq0.1;" - "rxq1@wq0.1;" - "txq2@wq0.2;" - "rxq2@wq0.2;" - "txq3@wq0.3;" - "rxq3@wq0.3;" - "txq4@wq0.4;" - "rxq4@wq0.4;" - "txq5@wq0.5;" - "rxq5@wq0.5;" - "txq6@wq0.6;" - "rxq6@wq0.6;" - "txq7@wq0.7;" - "rxq7@wq0.7" + "txq0@%s;" + "rxq0@%s;" + "txq1@%s;" + "rxq1@%s;" + "txq2@%s;" + "rxq2@%s;" + "txq3@%s;" + "rxq3@%s;" + "txq4@%s;" + "rxq4@%s;" + "txq5@%s;" + "rxq5@%s;" + "txq6@%s;" + "rxq6@%s;" + "txq7@%s;" + "rxq7@%s" + % ( + wqs[0], + wqs[0], + wqs[1], + wqs[1], + wqs[2], + wqs[2], + wqs[3], + wqs[3], + wqs[4], + wqs[4], + wqs[5], + wqs[5], + wqs[6], + wqs[6], + wqs[7], + wqs[7], + ) ) self.nb_cores = 4 ports = [self.dut.ports_info[self.dut_ports[0]]["pci"]] @@ -574,18 +602,18 @@ class TestPVPVhostAsyncVirtioPmdPerfDsa(TestCase): """ Test Case 13: pvp split ring vhost async test with 1core 1queue using vfio-pci driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) self.queues = 1 self.dmas = "txq0@%s-q0;rxq0@%s-q1" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], ) self.nb_cores = 1 ports = [self.dut.ports_info[self.dut_ports[0]]["pci"]] - ports.append(self.use_dsa_list[0]) - port_options = {self.use_dsa_list[0]: "max_queues=2"} + ports.append(dsas[0]) + port_options = {dsas[0]: "max_queues=2"} self.perf_test( case_info=self.running_case, ports=ports, @@ -597,8 +625,8 @@ class TestPVPVhostAsyncVirtioPmdPerfDsa(TestCase): """ Test Case 14: pvp split ring vhost async test with 1core 2queue using vfio-pci driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) self.queues = 2 self.dmas = ( @@ -607,16 +635,16 @@ class TestPVPVhostAsyncVirtioPmdPerfDsa(TestCase): "txq1@%s-q2;" "rxq1@%s-q3" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) ) self.nb_cores = 1 ports = [self.dut.ports_info[self.dut_ports[0]]["pci"]] - ports.append(self.use_dsa_list[0]) - port_options = {self.use_dsa_list[0]: "max_queues=4"} + ports.append(dsas[0]) + port_options = {dsas[0]: "max_queues=4"} self.perf_test( case_info=self.running_case, ports=ports, @@ -628,8 +656,8 @@ class TestPVPVhostAsyncVirtioPmdPerfDsa(TestCase): """ Test Case 15: pvp split ring vhost async test with 2core 2queue using vfio-pci driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) self.queues = 2 self.dmas = ( @@ -638,16 +666,16 @@ class TestPVPVhostAsyncVirtioPmdPerfDsa(TestCase): "txq1@%s-q2;" "rxq1@%s-q3" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) ) self.nb_cores = 2 ports = [self.dut.ports_info[self.dut_ports[0]]["pci"]] - ports.append(self.use_dsa_list[0]) - port_options = {self.use_dsa_list[0]: "max_queues=4"} + ports.append(dsas[0]) + port_options = {dsas[0]: "max_queues=4"} self.perf_test( case_info=self.running_case, ports=ports, @@ -659,8 +687,8 @@ class TestPVPVhostAsyncVirtioPmdPerfDsa(TestCase): """ Test Case 16: pvp split ring vhost async test with 2core 4queue using vfio-pci driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) self.queues = 4 self.dmas = ( @@ -673,20 +701,20 @@ class TestPVPVhostAsyncVirtioPmdPerfDsa(TestCase): "txq3@%s-q6;" "rxq3@%s-q7" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) ) self.nb_cores = 2 ports = [self.dut.ports_info[self.dut_ports[0]]["pci"]] - ports.append(self.use_dsa_list[0]) - port_options = {self.use_dsa_list[0]: "max_queues=8"} + ports.append(dsas[0]) + port_options = {dsas[0]: "max_queues=8"} self.perf_test( case_info=self.running_case, ports=ports, @@ -698,8 +726,8 @@ class TestPVPVhostAsyncVirtioPmdPerfDsa(TestCase): """ Test Case 17: pvp split ring vhost async test with 4core 4queue using vfio-pci driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) self.queues = 4 self.dmas = ( @@ -712,20 +740,20 @@ class TestPVPVhostAsyncVirtioPmdPerfDsa(TestCase): "txq3@%s-q6;" "rxq3@%s-q7" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) ) self.nb_cores = 4 ports = [self.dut.ports_info[self.dut_ports[0]]["pci"]] - ports.append(self.use_dsa_list[0]) - port_options = {self.use_dsa_list[0]: "max_queues=8"} + ports.append(dsas[0]) + port_options = {dsas[0]: "max_queues=8"} self.perf_test( case_info=self.running_case, ports=ports, @@ -737,8 +765,8 @@ class TestPVPVhostAsyncVirtioPmdPerfDsa(TestCase): """ Test Case 18: pvp split ring vhost async test with 4core 8queue using vfio-pci driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) self.queues = 8 self.dmas = ( @@ -751,20 +779,20 @@ class TestPVPVhostAsyncVirtioPmdPerfDsa(TestCase): "txq3@%s-q6;" "rxq3@%s-q7" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) ) self.nb_cores = 4 ports = [self.dut.ports_info[self.dut_ports[0]]["pci"]] - ports.append(self.use_dsa_list[0]) - port_options = {self.use_dsa_list[0]: "max_queues=8"} + ports.append(dsas[0]) + port_options = {dsas[0]: "max_queues=8"} self.perf_test( case_info=self.running_case, ports=ports, @@ -776,18 +804,18 @@ class TestPVPVhostAsyncVirtioPmdPerfDsa(TestCase): """ Test Case 19: pvp packed ring vhost async test with 1core 1queue using vfio-pci driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) self.queues = 1 self.dmas = "txq0@%s-q0;rxq0@%s-q1" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], ) self.nb_cores = 1 ports = [self.dut.ports_info[self.dut_ports[0]]["pci"]] - ports.append(self.use_dsa_list[0]) - port_options = {self.use_dsa_list[0]: "max_queues=2"} + ports.append(dsas[0]) + port_options = {dsas[0]: "max_queues=2"} self.perf_test( case_info=self.running_case, ports=ports, @@ -799,8 +827,8 @@ class TestPVPVhostAsyncVirtioPmdPerfDsa(TestCase): """ Test Case 20: pvp packed ring vhost async test with 1core 2queue using vfio-pci driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) self.queues = 2 self.dmas = ( @@ -809,16 +837,16 @@ class TestPVPVhostAsyncVirtioPmdPerfDsa(TestCase): "txq1@%s-q2;" "rxq1@%s-q3" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) ) self.nb_cores = 1 ports = [self.dut.ports_info[self.dut_ports[0]]["pci"]] - ports.append(self.use_dsa_list[0]) - port_options = {self.use_dsa_list[0]: "max_queues=4"} + ports.append(dsas[0]) + port_options = {dsas[0]: "max_queues=4"} self.perf_test( case_info=self.running_case, ports=ports, @@ -830,8 +858,8 @@ class TestPVPVhostAsyncVirtioPmdPerfDsa(TestCase): """ Test Case 21: pvp packed ring vhost async test with 2core 2queue using vfio-pci driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) self.queues = 2 self.dmas = ( @@ -840,16 +868,16 @@ class TestPVPVhostAsyncVirtioPmdPerfDsa(TestCase): "txq1@%s-q2;" "rxq1@%s-q3" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) ) self.nb_cores = 2 ports = [self.dut.ports_info[self.dut_ports[0]]["pci"]] - ports.append(self.use_dsa_list[0]) - port_options = {self.use_dsa_list[0]: "max_queues=4"} + ports.append(dsas[0]) + port_options = {dsas[0]: "max_queues=4"} self.perf_test( case_info=self.running_case, ports=ports, @@ -861,8 +889,8 @@ class TestPVPVhostAsyncVirtioPmdPerfDsa(TestCase): """ Test Case 22: pvp packed ring vhost async test with 2core 4queue using vfio-pci driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) self.queues = 4 self.dmas = ( @@ -875,20 +903,20 @@ class TestPVPVhostAsyncVirtioPmdPerfDsa(TestCase): "txq3@%s-q6;" "rxq3@%s-q7" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) ) self.nb_cores = 2 ports = [self.dut.ports_info[self.dut_ports[0]]["pci"]] - ports.append(self.use_dsa_list[0]) - port_options = {self.use_dsa_list[0]: "max_queues=8"} + ports.append(dsas[0]) + port_options = {dsas[0]: "max_queues=8"} self.perf_test( case_info=self.running_case, ports=ports, @@ -900,8 +928,8 @@ class TestPVPVhostAsyncVirtioPmdPerfDsa(TestCase): """ Test Case 23: pvp packed ring vhost async test with 4core 4queue using vfio-pci driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) self.queues = 4 self.dmas = ( @@ -914,20 +942,20 @@ class TestPVPVhostAsyncVirtioPmdPerfDsa(TestCase): "txq3@%s-q6;" "rxq3@%s-q7" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) ) self.nb_cores = 4 ports = [self.dut.ports_info[self.dut_ports[0]]["pci"]] - ports.append(self.use_dsa_list[0]) - port_options = {self.use_dsa_list[0]: "max_queues=8"} + ports.append(dsas[0]) + port_options = {dsas[0]: "max_queues=8"} self.perf_test( case_info=self.running_case, ports=ports, @@ -939,8 +967,8 @@ class TestPVPVhostAsyncVirtioPmdPerfDsa(TestCase): """ Test Case 24: pvp packed ring vhost async test with 4core 8queue using vfio-pci driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) self.queues = 8 self.dmas = ( @@ -953,20 +981,20 @@ class TestPVPVhostAsyncVirtioPmdPerfDsa(TestCase): "txq3@%s-q6;" "rxq3@%s-q7" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) ) self.nb_cores = 4 ports = [self.dut.ports_info[self.dut_ports[0]]["pci"]] - ports.append(self.use_dsa_list[0]) - port_options = {self.use_dsa_list[0]: "max_queues=8"} + ports.append(dsas[0]) + port_options = {dsas[0]: "max_queues=8"} self.perf_test( case_info=self.running_case, ports=ports, @@ -985,8 +1013,6 @@ class TestPVPVhostAsyncVirtioPmdPerfDsa(TestCase): Run after each test case. """ self.stop_vm_and_quit_testpmd() - self.DC.reset_all_work_queue() - self.DC.bind_all_dsa_to_kernel() def tear_down_all(self): """ diff --git a/tests/TestSuite_vhost_dsa.py b/tests/TestSuite_vhost_dsa.py index 1477eb6c..ef3fdf46 100644 --- a/tests/TestSuite_vhost_dsa.py +++ b/tests/TestSuite_vhost_dsa.py @@ -76,8 +76,6 @@ class TestVhostDsa(TestCase): self.dut.send_expect("killall -I %s" % self.testpmd_name, "#", 20) self.dut.send_expect("rm -rf %s/vhost-net*" % self.base_dir, "#") self.mode_list = [] - self.DC.reset_all_work_queue() - self.DC.bind_all_dsa_to_kernel() def get_vhost_port_num(self): out = self.vhost_user.send_expect("show port summary all", "testpmd> ", 60) @@ -166,8 +164,8 @@ class TestVhostDsa(TestCase): """ Test Case 1: PVP split ring vhost async operation test with each tx/rx queue using one DSA dpdk driver channel """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=2, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=2, driver_name="vfio-pci", socket=self.ports_socket ) dmas = ( "txq0@%s-q0;" @@ -175,10 +173,10 @@ class TestVhostDsa(TestCase): "rxq0@%s-q2;" "rxq1@%s-q3" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) ) vhost_eal_param = ( @@ -187,9 +185,9 @@ class TestVhostDsa(TestCase): vhost_param = "--nb-cores=1 --txq=2 --rxq=2 --txd=1024 --rxd=1024" ports = [self.dut.ports_info[0]["pci"]] - for i in self.use_dsa_list: + for i in dsas: ports.append(i) - port_options = {self.use_dsa_list[0]: "max_queues=4"} + port_options = {dsas[0]: "max_queues=4"} self.start_vhost_testpmd( cores=self.vhost_core_list, param=vhost_param, @@ -233,10 +231,10 @@ class TestVhostDsa(TestCase): "rxq0@%s-q0;" "rxq1@%s-q1" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[1], - self.use_dsa_list[1], + dsas[0], + dsas[0], + dsas[1], + dsas[1], ) ) vhost_param = "--nb-cores=2 --txq=2 --rxq=2 --txd=1024 --rxd=1024" @@ -244,8 +242,8 @@ class TestVhostDsa(TestCase): "--vdev 'net_vhost0,iface=vhost-net0,queues=2,dmas=[%s]'" % dmas ) port_options = { - self.use_dsa_list[0]: "max_queues=2", - self.use_dsa_list[1]: "max_queues=2", + dsas[0]: "max_queues=2", + dsas[1]: "max_queues=2", } self.start_vhost_testpmd( cores=self.vhost_core_list, @@ -293,8 +291,8 @@ class TestVhostDsa(TestCase): """ Test Case 2: PVP split ring vhost async operations test with one DSA dpdk driver channel being shared among multiple tx/rx queues """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) dmas = ( "txq0@%s-q0;" @@ -314,22 +312,22 @@ class TestVhostDsa(TestCase): "rxq6@%s-q1;" "rxq7@%s-q1" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) ) vhost_eal_param = ( @@ -337,9 +335,9 @@ class TestVhostDsa(TestCase): ) vhost_param = "--nb-cores=4 --txq=8 --rxq=8 --txd=1024 --rxd=1024" ports = [self.dut.ports_info[0]["pci"]] - for i in self.use_dsa_list: + for i in dsas: ports.append(i) - port_options = {self.use_dsa_list[0]: "max_queues=2"} + port_options = {dsas[0]: "max_queues=2"} self.start_vhost_testpmd( cores=self.vhost_core_list, param=vhost_param, @@ -395,29 +393,29 @@ class TestVhostDsa(TestCase): "rxq6@%s-q6;" "rxq7@%s-q7" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) ) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net0,queues=8,dmas=[%s]'" % dmas ) vhost_param = "--nb-cores=6 --txq=8 --rxq=8 --txd=1024 --rxd=1024" - port_options = {self.use_dsa_list[0]: "max_queues=8"} + port_options = {dsas[0]: "max_queues=8"} self.start_vhost_testpmd( cores=self.vhost_core_list, param=vhost_param, @@ -470,29 +468,29 @@ class TestVhostDsa(TestCase): "rxq6@%s-q0;" "rxq7@%s-q0" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) ) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net0,queues=8,dmas=[%s]'" % dmas ) vhost_param = "--nb-cores=6 --txq=8 --rxq=8 --txd=1024 --rxd=1024" - port_options = {self.use_dsa_list[0]: "max_queues=1"} + port_options = {dsas[0]: "max_queues=1"} self.start_vhost_testpmd( cores=self.vhost_core_list, param=vhost_param, @@ -539,8 +537,8 @@ class TestVhostDsa(TestCase): """ Test Case 3: PVP split ring dynamic queues vhost async operation with dsa dpdk driver channels """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=2, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=2, driver_name="vfio-pci", socket=self.ports_socket ) dmas = ( "txq0@%s-q0;" @@ -548,10 +546,10 @@ class TestVhostDsa(TestCase): "txq2@%s-q2;" "txq3@%s-q2" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) ) vhost_eal_param = ( @@ -559,9 +557,9 @@ class TestVhostDsa(TestCase): ) vhost_param = "--nb-cores=4 --txq=4 --rxq=4 --txd=1024 --rxd=1024" ports = [self.dut.ports_info[0]["pci"]] - for i in self.use_dsa_list: + for i in dsas: ports.append(i) - port_options = {self.use_dsa_list[0]: "max_queues=4"} + port_options = {dsas[0]: "max_queues=4"} self.start_vhost_testpmd( cores=self.vhost_core_list, param=vhost_param, @@ -610,17 +608,17 @@ class TestVhostDsa(TestCase): "rxq2@%s-q1;" "rxq3@%s-q0" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) ) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net0,queues=8,client=1,dmas=[%s]'" % dmas ) vhost_param = "--nb-cores=4 --txq=4 --rxq=4 --txd=1024 --rxd=1024" - port_options = {self.use_dsa_list[0]: "max_queues=4"} + port_options = {dsas[0]: "max_queues=4"} self.start_vhost_testpmd( cores=self.vhost_core_list, param=vhost_param, @@ -649,18 +647,18 @@ class TestVhostDsa(TestCase): "rxq6@%s-q2;" "rxq7@%s-q2" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[1], + dsas[1], + dsas[1], + dsas[1], + dsas[1], + dsas[1], ) ) vhost_eal_param = ( @@ -668,8 +666,8 @@ class TestVhostDsa(TestCase): ) vhost_param = "--nb-cores=4 --txq=8 --rxq=8 --txd=1024 --rxd=1024" port_options = { - self.use_dsa_list[0]: "max_queues=4", - self.use_dsa_list[1]: "max_queues=4", + dsas[0]: "max_queues=4", + dsas[1]: "max_queues=4", } self.start_vhost_testpmd( cores=self.vhost_core_list, @@ -711,19 +709,19 @@ class TestVhostDsa(TestCase): "rxq2@%s-q1;" "rxq3@%s-q1" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) ) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net0,queues=8,client=1,dmas=[%s]'" % dmas ) vhost_param = "--nb-cores=5 --txq=8 --rxq=8 --txd=1024 --rxd=1024" - port_options = {self.use_dsa_list[0]: "max_queues=2"} + port_options = {dsas[0]: "max_queues=2"} self.start_vhost_testpmd( cores=self.vhost_core_list, param=vhost_param, @@ -751,8 +749,8 @@ class TestVhostDsa(TestCase): """ Test Case 4: PVP packed ring vhost async operation test with each tx/rx queue using one DSA dpdk driver channel """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=2, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=2, driver_name="vfio-pci", socket=self.ports_socket ) dmas = ( "txq0@%s-q0;" @@ -760,10 +758,10 @@ class TestVhostDsa(TestCase): "rxq0@%s-q2;" "rxq1@%s-q2" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) ) vhost_eal_param = ( @@ -771,9 +769,9 @@ class TestVhostDsa(TestCase): ) vhost_param = "--nb-cores=1 --txq=2 --rxq=2 --txd=1024 --rxd=1024" ports = [self.dut.ports_info[0]["pci"]] - for i in self.use_dsa_list: + for i in dsas: ports.append(i) - port_options = {self.use_dsa_list[0]: "max_queues=4"} + port_options = {dsas[0]: "max_queues=4"} self.start_vhost_testpmd( cores=self.vhost_core_list, param=vhost_param, @@ -818,10 +816,10 @@ class TestVhostDsa(TestCase): "rxq0@%s-q0;" "rxq1@%s-q1" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[1], - self.use_dsa_list[1], + dsas[0], + dsas[0], + dsas[1], + dsas[1], ) ) vhost_eal_param = ( @@ -875,8 +873,8 @@ class TestVhostDsa(TestCase): """ Test Case 5: PVP packed ring vhost async operation test with one DSA dpdk driver channel being shared among multiple tx/rx queues """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) dmas = ( "txq0@%s-q0;" @@ -896,22 +894,22 @@ class TestVhostDsa(TestCase): "rxq6@%s-q1;" "rxq7@%s-q1" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) ) vhost_eal_param = ( @@ -919,9 +917,9 @@ class TestVhostDsa(TestCase): ) vhost_param = "--nb-cores=4 --txq=8 --rxq=8 --txd=1024 --rxd=1024" ports = [self.dut.ports_info[0]["pci"]] - for i in self.use_dsa_list: + for i in dsas: ports.append(i) - port_options = {self.use_dsa_list[0]: "max_queues=4"} + port_options = {dsas[0]: "max_queues=4"} self.start_vhost_testpmd( cores=self.vhost_core_list, param=vhost_param, @@ -978,22 +976,22 @@ class TestVhostDsa(TestCase): "rxq6@%s-q0;" "rxq7@%s-q0" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) ) vhost_eal_param = ( @@ -1047,17 +1045,17 @@ class TestVhostDsa(TestCase): """ Test Case 6: PVP packed ring dynamic queues vhost async operation with dsa dpdk driver channels """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=2, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=2, driver_name="vfio-pci", socket=self.ports_socket ) dmas = ( "txq0@%s-q0;" "txq1@%s-q0;" "txq2@%s-q1" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], ) ) vhost_eal_param = ( @@ -1065,11 +1063,11 @@ class TestVhostDsa(TestCase): ) vhost_param = "--nb-cores=4 --txq=4 --rxq=4 --txd=1024 --rxd=1024" ports = [self.dut.ports_info[0]["pci"]] - for i in self.use_dsa_list: + for i in dsas: ports.append(i) port_options = { - self.use_dsa_list[0]: "max_queues=4", - self.use_dsa_list[1]: "max_queues=4", + dsas[0]: "max_queues=4", + dsas[1]: "max_queues=4", } self.start_vhost_testpmd( cores=self.vhost_core_list, @@ -1118,9 +1116,9 @@ class TestVhostDsa(TestCase): "rxq1@%s-q1;" "rxq2@%s-q1" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], ) ) vhost_eal_param = ( @@ -1155,18 +1153,18 @@ class TestVhostDsa(TestCase): "rxq6@%s-q2;" "rxq7@%s-q2" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[1], + dsas[1], + dsas[1], + dsas[1], + dsas[1], + dsas[1], ) ) vhost_eal_param = ( @@ -1244,8 +1242,8 @@ class TestVhostDsa(TestCase): """ Test Case 7: PVP split ring vhost async operation test with each tx/rx queue using one DSA kernel driver channel """ - self.DC.create_work_queue(work_queue_number=4, dsa_index=0) - dmas = "txq0@wq0.0;" "txq1@wq0.1;" "rxq0@wq0.2;" "rxq1@wq0.3" + wqs = self.DC.create_wq(wq_num=4, dsa_idxs=[0]) + dmas = "txq0@%s;txq1@%s;rxq0@%s;rxq1@%s" % (wqs[0], wqs[1], wqs[2], wqs[3]) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net0,queues=2,dmas=[%s]'" % dmas ) @@ -1300,24 +1298,42 @@ class TestVhostDsa(TestCase): """ Test Case 8: PVP split ring all path multi-queues vhost async operation test with one DSA kernel driver channel being shared among multiple tx/rx queues """ - self.DC.create_work_queue(work_queue_number=4, dsa_index=0) + wqs = self.DC.create_wq(wq_num=4, dsa_idxs=[0]) dmas = ( - "txq0@wq0.0;" - "txq1@wq0.0;" - "txq2@wq0.0;" - "txq3@wq0.0;" - "txq4@wq0.1;" - "txq5@wq0.1;" - "txq6@wq0.1;" - "txq7@wq0.1;" - "rxq0@wq0.0;" - "rxq1@wq0.0;" - "rxq2@wq0.0;" - "rxq3@wq0.0;" - "rxq4@wq0.1;" - "rxq5@wq0.1;" - "rxq6@wq0.1;" - "rxq7@wq0.1" + "txq0@%s;" + "txq1@%s;" + "txq2@%s;" + "txq3@%s;" + "txq4@%s;" + "txq5@%s;" + "txq6@%s;" + "txq7@%s;" + "rxq0@%s;" + "rxq1@%s;" + "rxq2@%s;" + "rxq3@%s;" + "rxq4@%s;" + "rxq5@%s;" + "rxq6@%s;" + "rxq7@%s" + % ( + wqs[0], + wqs[0], + wqs[0], + wqs[0], + wqs[1], + wqs[1], + wqs[1], + wqs[1], + wqs[0], + wqs[0], + wqs[0], + wqs[0], + wqs[1], + wqs[1], + wqs[1], + wqs[1], + ) ) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net0,queues=8,dmas=[%s]'" % dmas @@ -1362,22 +1378,40 @@ class TestVhostDsa(TestCase): if not self.check_2M_env: self.vhost_user_pmd.quit() dmas = ( - "txq0@wq0.0;" - "txq1@wq0.0;" - "txq2@wq0.1;" - "txq3@wq0.1;" - "txq4@wq0.2;" - "txq5@wq0.2;" - "txq6@wq0.3;" - "txq7@wq0.3;" - "rxq0@wq0.0;" - "rxq1@wq0.0;" - "rxq2@wq0.1;" - "rxq3@wq0.1;" - "rxq4@wq0.2;" - "rxq5@wq0.2;" - "rxq6@wq0.3;" - "rxq7@wq0.3" + "txq0@%s;" + "txq1@%s;" + "txq2@%s;" + "txq3@%s;" + "txq4@%s;" + "txq5@%s;" + "txq6@%s;" + "txq7@%s;" + "rxq0@%s;" + "rxq1@%s;" + "rxq2@%s;" + "rxq3@%s;" + "rxq4@%s;" + "rxq5@%s;" + "rxq6@%s;" + "rxq7@%s" + % ( + wqs[0], + wqs[0], + wqs[1], + wqs[1], + wqs[2], + wqs[2], + wqs[3], + wqs[3], + wqs[0], + wqs[0], + wqs[1], + wqs[1], + wqs[2], + wqs[2], + wqs[3], + wqs[3], + ) ) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net0,queues=8,dmas=[%s]'" % dmas @@ -1406,9 +1440,8 @@ class TestVhostDsa(TestCase): """ Test Case 9: PVP split ring dynamic queues vhost async operation with dsa kernel driver channels """ - self.DC.create_work_queue(work_queue_number=8, dsa_index=0) - self.DC.create_work_queue(work_queue_number=8, dsa_index=1) - dmas = "txq0@wq0.0;" "txq1@wq0.1;" "txq2@wq0.2;" "txq3@wq0.2" + wqs = self.DC.create_wq(wq_num=8, dsa_idxs=[0, 1]) + dmas = "txq0@%s;txq1@%s;txq2@%s;txq3@%s" % (wqs[0], wqs[1], wqs[2], wqs[2]) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net0,queues=8,client=1,dmas=[%s]'" % dmas ) @@ -1456,7 +1489,7 @@ class TestVhostDsa(TestCase): self.check_each_queue_of_port_packets(queues=1) self.vhost_user_pmd.quit() - dmas = "rxq0@wq0.0;" "rxq1@wq0.1;" "rxq2@wq0.1;" "rxq3@wq0.0" + dmas = "rxq0@%s;rxq1@%s;rxq2@%s;rxq3@%s" % (wqs[0], wqs[1], wqs[1], wqs[0]) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net0,queues=8,client=1,dmas=[%s]'" % dmas ) @@ -1476,18 +1509,32 @@ class TestVhostDsa(TestCase): self.vhost_user_pmd.quit() dmas = ( - "txq0@wq0.0;" - "txq1@wq0.0;" - "txq2@wq0.0;" - "txq3@wq0.0;" - "txq4@wq0.1;" - "txq5@wq0.2;" - "rxq2@wq1.0;" - "rxq3@wq1.1;" - "rxq4@wq1.2;" - "rxq5@wq1.2;" - "rxq6@wq1.2;" - "rxq7@wq1.2" + "txq0@%s;" + "txq1@%s;" + "txq2@%s;" + "txq3@%s;" + "txq4@%s;" + "txq5@%s;" + "rxq2@%s;" + "rxq3@%s;" + "rxq4@%s;" + "rxq5@%s;" + "rxq6@%s;" + "rxq7@%s" + % ( + wqs[0], + wqs[0], + wqs[0], + wqs[0], + wqs[1], + wqs[2], + wqs[8], + wqs[9], + wqs[10], + wqs[10], + wqs[10], + wqs[10], + ) ) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net0,queues=8,client=1,dmas=[%s]'" % dmas @@ -1508,18 +1555,32 @@ class TestVhostDsa(TestCase): self.vhost_user_pmd.quit() dmas = ( - "txq0@wq0.0;" - "txq1@wq0.1;" - "txq2@wq0.2;" - "txq3@wq0.3;" - "txq4@wq0.4;" - "txq5@wq0.5;" - "rxq2@wq1.2;" - "rxq3@wq1.3;" - "rxq4@wq1.4;" - "rxq5@wq1.5;" - "rxq6@wq1.6;" - "rxq7@wq1.7" + "txq0@%s;" + "txq1@%s;" + "txq2@%s;" + "txq3@%s;" + "txq4@%s;" + "txq5@%s;" + "rxq2@%s;" + "rxq3@%s;" + "rxq4@%s;" + "rxq5@%s;" + "rxq6@%s;" + "rxq7@%s" + % ( + wqs[0], + wqs[1], + wqs[2], + wqs[3], + wqs[4], + wqs[5], + wqs[10], + wqs[11], + wqs[12], + wqs[13], + wqs[14], + wqs[15], + ) ) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net0,queues=8,client=1,dmas=[%s]'" % dmas @@ -1571,9 +1632,8 @@ class TestVhostDsa(TestCase): Test Case 10: PVP packed ring all path multi-queues vhost async operation test with each tx/rx queue using one DSA kernel driver channel """ - self.DC.create_work_queue(work_queue_number=2, dsa_index=0) - self.DC.create_work_queue(work_queue_number=2, dsa_index=1) - dmas = "txq0@wq0.0;" "txq1@wq0.1;" "rxq0@wq1.0;" "rxq1@wq1.1" + wqs = self.DC.create_wq(wq_num=2, dsa_idxs=[0, 1]) + dmas = "txq0@%s;txq1@%s;rxq0@%s;rxq1@%s" % (wqs[0], wqs[1], wqs[2], wqs[3]) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net0,queues=2,dmas=[%s]'" % dmas ) @@ -1629,24 +1689,42 @@ class TestVhostDsa(TestCase): """ Test Case 11: PVP packed ring all path multi-queues vhost async operation test with one DSA kernel driver channel being shared among multiple tx/rx queues """ - self.DC.create_work_queue(work_queue_number=2, dsa_index=0) + wqs = self.DC.create_wq(wq_num=2, dsa_idxs=[0]) dmas = ( - "txq0@wq0.0;" - "txq1@wq0.0;" - "txq2@wq0.0;" - "txq3@wq0.0;" - "txq4@wq0.1;" - "txq5@wq0.1;" - "txq6@wq0.1;" - "txq7@wq0.1;" - "rxq0@wq0.0;" - "rxq1@wq0.0;" - "rxq2@wq0.0;" - "rxq3@wq0.0;" - "rxq4@wq0.1;" - "rxq5@wq0.1;" - "rxq6@wq0.1;" - "rxq7@wq0.1" + "txq0@%s;" + "txq1@%s;" + "txq2@%s;" + "txq3@%s;" + "txq4@%s;" + "txq5@%s;" + "txq6@%s;" + "txq7@%s;" + "rxq0@%s;" + "rxq1@%s;" + "rxq2@%s;" + "rxq3@%s;" + "rxq4@%s;" + "rxq5@%s;" + "rxq6@%s;" + "rxq7@%s" + % ( + wqs[0], + wqs[0], + wqs[0], + wqs[0], + wqs[1], + wqs[1], + wqs[1], + wqs[1], + wqs[0], + wqs[0], + wqs[0], + wqs[0], + wqs[1], + wqs[1], + wqs[1], + wqs[1], + ) ) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net0,queues=8,dmas=[%s]'" % dmas @@ -1691,24 +1769,6 @@ class TestVhostDsa(TestCase): if not self.check_2M_env: self.vhost_user_pmd.quit() - dmas = ( - "txq0@wq0.0;" - "txq1@wq0.0;" - "txq2@wq0.0;" - "txq3@wq0.0;" - "txq4@wq0.1;" - "txq5@wq0.1;" - "txq6@wq0.1;" - "txq7@wq0.1;" - "rxq0@wq0.0;" - "rxq1@wq0.0;" - "rxq2@wq0.0;" - "rxq3@wq0.0;" - "rxq4@wq0.1;" - "rxq5@wq0.1;" - "rxq6@wq0.1;" - "rxq7@wq0.1" - ) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net0,queues=8,dmas=[%s]'" % dmas ) @@ -1736,9 +1796,8 @@ class TestVhostDsa(TestCase): """ Test Case 12: PVP packed ring dynamic queues vhost async operation with dsa kernel driver channels """ - self.DC.create_work_queue(work_queue_number=8, dsa_index=0) - self.DC.create_work_queue(work_queue_number=8, dsa_index=1) - dmas = "txq0@wq0.0;" "txq1@wq0.1;" "txq2@wq0.2;" "txq3@wq0.2" + wqs = self.DC.create_wq(wq_num=8, dsa_idxs=[0, 1]) + dmas = "txq0@%s;txq1@%s;txq2@%s;txq3@%s" % (wqs[0], wqs[1], wqs[2], wqs[2]) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net0,queues=8,client=1,dmas=[%s]'" % dmas ) @@ -1786,7 +1845,7 @@ class TestVhostDsa(TestCase): self.check_each_queue_of_port_packets(queues=1) self.vhost_user_pmd.quit() - dmas = "rxq0@wq0.0;" "rxq1@wq0.1;" "rxq2@wq0.1;" "rxq3@wq0.0" + dmas = "rxq0@%s;rxq1@%s;rxq2@%s;rxq3@%s" % (wqs[0], wqs[1], wqs[1], wqs[0]) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net0,queues=8,client=1,dmas=[%s]'" % dmas ) @@ -1806,18 +1865,32 @@ class TestVhostDsa(TestCase): self.vhost_user_pmd.quit() dmas = ( - "txq0@wq0.0;" - "txq1@wq0.0;" - "txq2@wq0.0;" - "txq3@wq0.0;" - "txq4@wq0.1;" - "txq5@wq0.2;" - "rxq2@wq1.0;" - "rxq3@wq1.1;" - "rxq4@wq1.2;" - "rxq5@wq1.2;" - "rxq6@wq1.2;" - "rxq7@wq1.2" + "txq0@%s;" + "txq1@%s;" + "txq2@%s;" + "txq3@%s;" + "txq4@%s;" + "txq5@%s;" + "rxq2@%s;" + "rxq3@%s;" + "rxq4@%s;" + "rxq5@%s;" + "rxq6@%s;" + "rxq7@%s" + % ( + wqs[0], + wqs[0], + wqs[0], + wqs[0], + wqs[1], + wqs[2], + wqs[8], + wqs[9], + wqs[10], + wqs[10], + wqs[10], + wqs[10], + ) ) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net0,queues=8,client=1,dmas=[%s]'" % dmas @@ -1838,18 +1911,32 @@ class TestVhostDsa(TestCase): self.vhost_user_pmd.quit() dmas = ( - "txq0@wq0.0;" - "txq1@wq0.1;" - "txq2@wq0.2;" - "txq3@wq0.3;" - "txq4@wq0.4;" - "txq5@wq0.5;" - "rxq2@wq1.2;" - "rxq3@wq1.3;" - "rxq4@wq1.4;" - "rxq5@wq1.5;" - "rxq6@wq1.6;" - "rxq7@wq1.7" + "txq0@%s;" + "txq1@%s;" + "txq2@%s;" + "txq3@%s;" + "txq4@%s;" + "txq5@%s;" + "rxq2@%s;" + "rxq3@%s;" + "rxq4@%s;" + "rxq5@%s;" + "rxq6@%s;" + "rxq7@%s" + % ( + wqs[0], + wqs[1], + wqs[2], + wqs[3], + wqs[4], + wqs[5], + wqs[10], + wqs[11], + wqs[12], + wqs[13], + wqs[14], + wqs[15], + ) ) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net0,queues=8,client=1,dmas=[%s]'" % dmas @@ -1894,15 +1981,14 @@ class TestVhostDsa(TestCase): """ Test Case 13: PVP split and packed ring dynamic queues vhost async operation with dsa dpdk and kernel driver channels """ - self.DC.create_work_queue(work_queue_number=8, dsa_index=0) - self.DC.create_work_queue(work_queue_number=8, dsa_index=1) - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=2, + wqs = self.DC.create_wq(wq_num=8, dsa_idxs=[0, 1]) + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=2, driver_name="vfio-pci", - dsa_index_list=[2, 3], + dsa_idxs=[2, 3], socket=self.ports_socket, ) - dmas = "txq0@wq0.0;" "txq1@wq0.0" + dmas = "txq0@%s;txq1@%s" % (wqs[0], wqs[0]) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net0,queues=8,client=1,dmas=[%s]'" % dmas ) @@ -1944,14 +2030,14 @@ class TestVhostDsa(TestCase): "rxq2@%s-q1;" "rxq3@%s-q2" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[1], + dsas[1], + dsas[1], + dsas[1], ) ) vhost_eal_param = ( @@ -1959,11 +2045,11 @@ class TestVhostDsa(TestCase): ) vhost_param = "--nb-cores=4 --txq=8 --rxq=8 --txd=1024 --rxd=1024" ports = [self.dut.ports_info[0]["pci"]] - for i in self.use_dsa_list: + for i in dsas: ports.append(i) port_options = { - self.use_dsa_list[0]: "max_queues=2", - self.use_dsa_list[1]: "max_queues=4", + dsas[0]: "max_queues=2", + dsas[1]: "max_queues=4", } self.start_vhost_testpmd( cores=self.vhost_core_list, @@ -1980,13 +2066,13 @@ class TestVhostDsa(TestCase): self.vhost_user_pmd.quit() dmas = ( - "txq0@wq0.0;" - "txq1@wq0.1;" - "txq2@wq0.2;" - "txq3@wq0.3;" - "txq4@wq0.4;" - "txq5@wq0.5;" - "txq6@wq0.6;" + "txq0@%s;" + "txq1@%s;" + "txq2@%s;" + "txq3@%s;" + "txq4@%s;" + "txq5@%s;" + "txq6@%s;" "rxq2@%s-q0;" "rxq3@%s-q1;" "rxq4@%s-q0;" @@ -1994,12 +2080,19 @@ class TestVhostDsa(TestCase): "rxq6@%s-q2;" "rxq7@%s-q3" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], + wqs[0], + wqs[1], + wqs[2], + wqs[3], + wqs[4], + wqs[5], + wqs[6], + dsas[0], + dsas[0], + dsas[1], + dsas[1], + dsas[1], + dsas[1], ) ) vhost_eal_param = ( @@ -2007,11 +2100,11 @@ class TestVhostDsa(TestCase): ) vhost_param = "--nb-cores=4 --txq=8 --rxq=8 --txd=1024 --rxd=1024" ports = [self.dut.ports_info[0]["pci"]] - for i in self.use_dsa_list: + for i in dsas: ports.append(i) port_options = { - self.use_dsa_list[0]: "max_queues=2", - self.use_dsa_list[1]: "max_queues=4", + dsas[0]: "max_queues=2", + dsas[1]: "max_queues=4", } self.start_vhost_testpmd( cores=self.vhost_core_list, @@ -2045,39 +2138,16 @@ class TestVhostDsa(TestCase): self.check_each_queue_of_port_packets(queues=8) self.vhost_user_pmd.quit() - dmas = ( - "txq0@wq0.0;" - "txq1@wq0.1;" - "txq2@wq0.2;" - "txq3@wq0.3;" - "txq4@wq0.4;" - "txq5@wq0.5;" - "txq6@wq0.6;" - "rxq2@%s-q0;" - "rxq3@%s-q1;" - "rxq4@%s-q0;" - "rxq5@%s-q1;" - "rxq6@%s-q2;" - "rxq7@%s-q3" - % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], - ) - ) vhost_eal_param = ( "--vdev 'net_vhost0,iface=vhost-net0,queues=8,client=1,dmas=[%s]'" % dmas ) vhost_param = "--nb-cores=4 --txq=8 --rxq=8 --txd=1024 --rxd=1024" ports = [self.dut.ports_info[0]["pci"]] - for i in self.use_dsa_list: + for i in dsas: ports.append(i) port_options = { - self.use_dsa_list[0]: "max_queues=2", - self.use_dsa_list[1]: "max_queues=4", + dsas[0]: "max_queues=2", + dsas[1]: "max_queues=4", } self.start_vhost_testpmd( cores=self.vhost_core_list, diff --git a/tests/TestSuite_vm2vm_virtio_net_perf_dsa.py b/tests/TestSuite_vm2vm_virtio_net_perf_dsa.py index b06e5ca6..408713f8 100644 --- a/tests/TestSuite_vm2vm_virtio_net_perf_dsa.py +++ b/tests/TestSuite_vm2vm_virtio_net_perf_dsa.py @@ -2,16 +2,14 @@ # Copyright(c) 2022 Intel Corporation # -import random import re -import string -import time import framework.utils as utils from framework.pmd_output import PmdOutput from framework.test_case import TestCase from framework.virt_common import VM +from .virtio_common import basic_common as BC from .virtio_common import dsa_common as DC @@ -22,28 +20,22 @@ class TestVM2VMVirtioNetPerfDsa(TestCase): self.cores_list = self.dut.get_core_list(config="all", socket=self.ports_socket) self.vhost_core_list = self.cores_list[0:9] self.vm_num = 2 - self.virtio_ip1 = "1.1.1.1" - self.virtio_ip2 = "1.1.1.2" - self.virtio_mac1 = "52:54:00:00:00:01" - self.virtio_mac2 = "52:54:00:00:00:02" self.base_dir = self.dut.base_dir.replace("~", "/root") - self.random_string = string.ascii_letters + string.digits socket_num = len(set([int(core["socket"]) for core in self.dut.cores])) self.socket_mem = ",".join(["2048"] * socket_num) self.vhost_user = self.dut.new_session(suite="vhost") self.vhost_user_pmd = PmdOutput(self.dut, self.vhost_user) self.app_testpmd_path = self.dut.apps_name["test-pmd"] self.testpmd_name = self.app_testpmd_path.split("/")[-1] + self.BC = BC(self) self.DC = DC(self) def set_up(self): self.dut.send_expect("rm -rf %s/vhost-net*" % self.base_dir, "#") self.dut.send_expect("killall -s INT %s" % self.testpmd_name, "#") + self.dut.send_expect("killall -s INT qemu-system-x86_64", "#") self.vm_dut = [] self.vm = [] - self.use_dsa_list = [] - self.DC.reset_all_work_queue() - self.DC.bind_all_dsa_to_kernel() def start_vhost_testpmd( self, @@ -115,86 +107,6 @@ class TestVM2VMVirtioNetPerfDsa(TestCase): self.vm_dut.append(vm_dut) self.vm.append(vm_info) - def config_vm_ip(self): - """ - set virtio device IP and run arp protocal - """ - vm1_intf = self.vm_dut[0].ports_info[0]["intf"] - vm2_intf = self.vm_dut[1].ports_info[0]["intf"] - self.vm_dut[0].send_expect( - "ifconfig %s %s" % (vm1_intf, self.virtio_ip1), "#", 10 - ) - self.vm_dut[1].send_expect( - "ifconfig %s %s" % (vm2_intf, self.virtio_ip2), "#", 10 - ) - self.vm_dut[0].send_expect( - "arp -s %s %s" % (self.virtio_ip2, self.virtio_mac2), "#", 10 - ) - self.vm_dut[1].send_expect( - "arp -s %s %s" % (self.virtio_ip1, self.virtio_mac1), "#", 10 - ) - - def config_vm_combined(self, combined=1): - """ - set virtio device combined - """ - vm1_intf = self.vm_dut[0].ports_info[0]["intf"] - vm2_intf = self.vm_dut[1].ports_info[0]["intf"] - self.vm_dut[0].send_expect( - "ethtool -L %s combined %d" % (vm1_intf, combined), "#", 10 - ) - self.vm_dut[1].send_expect( - "ethtool -L %s combined %d" % (vm2_intf, combined), "#", 10 - ) - - def check_ping_between_vms(self): - ping_out = self.vm_dut[0].send_expect( - "ping {} -c 4".format(self.virtio_ip2), "#", 20 - ) - self.logger.info(ping_out) - - def start_iperf(self): - """ - run perf command between to vms - """ - self.vhost_user_pmd.execute_cmd("clear port xstats all") - - server = "iperf -s -i 1" - client = "iperf -c {} -i 1 -t 60".format(self.virtio_ip1) - self.vm_dut[0].send_expect("{} > iperf_server.log &".format(server), "", 10) - self.vm_dut[1].send_expect("{} > iperf_client.log &".format(client), "", 10) - time.sleep(60) - - def get_perf_result(self): - """ - get the iperf test result - """ - self.table_header = ["Mode", "[M|G]bits/sec"] - self.result_table_create(self.table_header) - self.vm_dut[0].send_expect("pkill iperf", "# ") - self.vm_dut[1].session.copy_file_from("%s/iperf_client.log" % self.dut.base_dir) - fp = open("./iperf_client.log") - fmsg = fp.read() - fp.close() - # remove the server report info from msg - index = fmsg.find("Server Report") - if index != -1: - fmsg = fmsg[:index] - iperfdata = re.compile("\S*\s*[M|G]bits/sec").findall(fmsg) - # the last data of iperf is the ave data from 0-30 sec - self.verify(len(iperfdata) != 0, "The iperf data between to vms is 0") - self.logger.info("The iperf data between vms is %s" % iperfdata[-1]) - - # put the result to table - results_row = ["vm2vm", iperfdata[-1]] - self.result_table_add(results_row) - - # print iperf resut - self.result_table_print() - # rm the iperf log file in vm - self.vm_dut[0].send_expect("rm iperf_server.log", "#", 10) - self.vm_dut[1].send_expect("rm iperf_client.log", "#", 10) - def verify_xstats_info_on_vhost(self): """ check both 2VMs can receive and send big packets to each other @@ -213,40 +125,15 @@ class TestVM2VMVirtioNetPerfDsa(TestCase): int(tx_info.group(1)) > 0, "Port 0 not forward packet greater than 1519" ) - def check_scp_file_valid_between_vms(self, file_size=1024): - """ - scp file form VM1 to VM2, check the data is valid - """ - # default file_size=1024K - data = "" - for char in range(file_size * 1024): - data += random.choice(self.random_string) - self.vm_dut[0].send_expect('echo "%s" > /tmp/payload' % data, "# ") - # scp this file to vm1 - out = self.vm_dut[1].send_command( - "scp root@%s:/tmp/payload /root" % self.virtio_ip1, timeout=10 - ) - if "Are you sure you want to continue connecting" in out: - self.vm_dut[1].send_command("yes", timeout=10) - self.vm_dut[1].send_command(self.vm[0].password, timeout=10) - # get the file info in vm1, and check it valid - md5_send = self.vm_dut[0].send_expect("md5sum /tmp/payload", "# ") - md5_revd = self.vm_dut[1].send_expect("md5sum /root/payload", "# ") - md5_send = md5_send[: md5_send.find(" ")] - md5_revd = md5_revd[: md5_revd.find(" ")] - self.verify( - md5_send == md5_revd, "the received file is different with send file" - ) - def test_split_tso_with_dpdk_driver(self): """ Test Case 1: VM2VM vhost-user/virtio-net split ring test TSO with dsa dpdk driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) - dmas = "txq0@%s-q0;rxq0@%s-q0" % (self.use_dsa_list[0], self.use_dsa_list[0]) - port_options = {self.use_dsa_list[0]: "max_queues=2"} + dmas = "txq0@%s-q0;rxq0@%s-q0" % (dsas[0], dsas[0]) + port_options = {dsas[0]: "max_queues=2"} vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=1,tso=1,dmas=[%s]' " "--vdev 'eth_vhost1,iface=vhost-net1,queues=1,tso=1,dmas=[%s]'" @@ -257,23 +144,23 @@ class TestVM2VMVirtioNetPerfDsa(TestCase): cores=self.vhost_core_list, eal_param=vhost_eal_param, param=vhost_param, - ports=self.use_dsa_list, + ports=dsas, port_options=port_options, ) self.vm_args = "disable-modern=false,mrg_rxbuf=off,csum=on,guest_csum=on,host_tso4=on,guest_tso4=on,guest_ecn=on,guest_ufo=on,host_ufo=on" self.start_vms(server_mode=False, vm_queue=1) - self.config_vm_ip() - self.check_ping_between_vms() - self.start_iperf() - self.get_perf_result() + self.BC.config_2_vms_ip() + self.BC.check_scp_file_between_2_vms() + self.BC.run_iperf_test_between_2_vms() + self.BC.check_iperf_result_between_2_vms() self.verify_xstats_info_on_vhost() def test_split_mergeable_8_queues_large_packet_paylocad_with_dpdk_driver(self): """ Test Case 2: VM2VM vhost-user/virtio-net split ring mergeable path 8 queues test with large packet payload with dsa dpdk driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=2, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=2, driver_name="vfio-pci", socket=self.ports_socket ) dmas = ( "txq0@%s-q0;" @@ -293,25 +180,25 @@ class TestVM2VMVirtioNetPerfDsa(TestCase): "rxq6@%s-q3;" "rxq7@%s-q3" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) ) - port_options = {self.use_dsa_list[0]: "max_queues=4"} + port_options = {dsas[0]: "max_queues=4"} vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,client=1,queues=8,tso=1,dmas=[%s]' " "--vdev 'eth_vhost1,iface=vhost-net1,client=1,queues=8,tso=1,dmas=[%s]'" @@ -322,17 +209,17 @@ class TestVM2VMVirtioNetPerfDsa(TestCase): cores=self.vhost_core_list, eal_param=vhost_eal_param, param=vhost_param, - ports=self.use_dsa_list[0:1], + ports=dsas[0:1], port_options=port_options, ) self.vm_args = "disable-modern=false,mrg_rxbuf=on,mq=on,vectors=40,csum=on,guest_csum=on,host_tso4=on,guest_tso4=on,guest_ecn=on,guest_ufo=on,host_ufo=on" self.start_vms(server_mode=True, vm_queue=8) - self.config_vm_combined(combined=8) - self.config_vm_ip() - self.check_ping_between_vms() - self.check_scp_file_valid_between_vms() - self.start_iperf() - self.get_perf_result() + self.BC.config_2_vms_combined(combined=8) + self.BC.config_2_vms_ip() + self.BC.check_ping_between_2_vms() + self.BC.check_scp_file_between_2_vms() + self.BC.run_iperf_test_between_2_vms() + self.BC.check_iperf_result_between_2_vms() self.vhost_user_pmd.quit() dmas1 = ( @@ -349,18 +236,18 @@ class TestVM2VMVirtioNetPerfDsa(TestCase): "rxq6@%s-q5;" "rxq7@%s-q5" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) ) dmas2 = ( @@ -377,18 +264,18 @@ class TestVM2VMVirtioNetPerfDsa(TestCase): "rxq6@%s-q5;" "rxq7@%s-q5" % ( - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], + dsas[1], + dsas[1], + dsas[1], + dsas[1], + dsas[1], + dsas[1], + dsas[1], + dsas[1], + dsas[1], + dsas[1], + dsas[1], + dsas[1], ) ) vhost_eal_param = ( @@ -397,20 +284,20 @@ class TestVM2VMVirtioNetPerfDsa(TestCase): % (dmas1, dmas2) ) port_options = { - self.use_dsa_list[0]: "max_queues=8", - self.use_dsa_list[1]: "max_queues=8", + dsas[0]: "max_queues=8", + dsas[1]: "max_queues=8", } self.start_vhost_testpmd( cores=self.vhost_core_list, eal_param=vhost_eal_param, param=vhost_param, - ports=self.use_dsa_list, + ports=dsas, port_options=port_options, ) - self.check_ping_between_vms() - self.check_scp_file_valid_between_vms() - self.start_iperf() - self.get_perf_result() + self.BC.check_ping_between_2_vms() + self.BC.check_scp_file_between_2_vms() + self.BC.run_iperf_test_between_2_vms() + self.BC.check_iperf_result_between_2_vms() if not self.check_2M_env: self.vhost_user_pmd.quit() @@ -418,14 +305,14 @@ class TestVM2VMVirtioNetPerfDsa(TestCase): cores=self.vhost_core_list, eal_param=vhost_eal_param, param=vhost_param, - ports=self.use_dsa_list, + ports=dsas, port_options=port_options, iova_mode="pa", ) - self.check_ping_between_vms() - self.check_scp_file_valid_between_vms() - self.start_iperf() - self.get_perf_result() + self.BC.check_ping_between_2_vms() + self.BC.check_scp_file_between_2_vms() + self.BC.run_iperf_test_between_2_vms() + self.BC.check_iperf_result_between_2_vms() self.vhost_user_pmd.quit() vhost_eal_param = ( @@ -439,11 +326,11 @@ class TestVM2VMVirtioNetPerfDsa(TestCase): param=vhost_param, no_pci=True, ) - self.config_vm_combined(combined=4) - self.check_ping_between_vms() - self.check_scp_file_valid_between_vms() - self.start_iperf() - self.get_perf_result() + self.BC.config_2_vms_combined(combined=4) + self.BC.check_ping_between_2_vms() + self.BC.check_scp_file_between_2_vms() + self.BC.run_iperf_test_between_2_vms() + self.BC.check_iperf_result_between_2_vms() self.vhost_user_pmd.quit() vhost_eal_param = ( @@ -457,18 +344,18 @@ class TestVM2VMVirtioNetPerfDsa(TestCase): param=vhost_param, no_pci=True, ) - self.config_vm_combined(combined=1) - self.check_ping_between_vms() - self.check_scp_file_valid_between_vms() - self.start_iperf() - self.get_perf_result() + self.BC.config_2_vms_combined(combined=1) + self.BC.check_ping_between_2_vms() + self.BC.check_scp_file_between_2_vms() + self.BC.run_iperf_test_between_2_vms() + self.BC.check_iperf_result_between_2_vms() def test_split_non_mergeable_8_queues_large_packet_paylocad_with_dpdk_driver(self): """ Test Case 3: VM2VM vhost-user/virtio-net split ring non-mergeable path 8 queues test with large packet payload with dsa dpdk driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=2, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=2, driver_name="vfio-pci", socket=self.ports_socket ) dmas = ( "txq0@%s-q0;" @@ -488,25 +375,25 @@ class TestVM2VMVirtioNetPerfDsa(TestCase): "rxq6@%s-q3;" "rxq7@%s-q3" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) ) - port_options = {self.use_dsa_list[0]: "max_queues=8"} + port_options = {dsas[0]: "max_queues=8"} vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,client=1,queues=8,tso=1,dmas=[%s]' " "--vdev 'eth_vhost1,iface=vhost-net1,client=1,queues=8,tso=1,dmas=[%s]'" @@ -517,17 +404,17 @@ class TestVM2VMVirtioNetPerfDsa(TestCase): cores=self.vhost_core_list, eal_param=vhost_eal_param, param=vhost_param, - ports=self.use_dsa_list[0:1], + ports=dsas[0:1], port_options=port_options, ) self.vm_args = "disable-modern=false,mrg_rxbuf=off,mq=on,vectors=40,csum=on,guest_csum=on,host_tso4=on,guest_tso4=on,guest_ecn=on,guest_ufo=on,host_ufo=on" self.start_vms(server_mode=True, vm_queue=8) - self.config_vm_combined(combined=8) - self.config_vm_ip() - self.check_ping_between_vms() - self.check_scp_file_valid_between_vms() - self.start_iperf() - self.get_perf_result() + self.BC.config_2_vms_combined(combined=8) + self.BC.config_2_vms_ip() + self.BC.check_ping_between_2_vms() + self.BC.check_scp_file_between_2_vms() + self.BC.run_iperf_test_between_2_vms() + self.BC.check_iperf_result_between_2_vms() self.vhost_user_pmd.quit() vhost_eal_param = ( @@ -541,11 +428,12 @@ class TestVM2VMVirtioNetPerfDsa(TestCase): param=vhost_param, no_pci=True, ) - self.config_vm_combined(combined=4) - self.check_ping_between_vms() - self.check_scp_file_valid_between_vms() - self.start_iperf() - self.get_perf_result() + self.BC.config_2_vms_combined(combined=4) + self.BC.config_2_vms_ip() + self.BC.check_ping_between_2_vms() + self.BC.check_scp_file_between_2_vms() + self.BC.run_iperf_test_between_2_vms() + self.BC.check_iperf_result_between_2_vms() self.vhost_user_pmd.quit() vhost_eal_param = ( @@ -559,21 +447,22 @@ class TestVM2VMVirtioNetPerfDsa(TestCase): param=vhost_param, no_pci=True, ) - self.config_vm_combined(combined=1) - self.check_ping_between_vms() - self.check_scp_file_valid_between_vms() - self.start_iperf() - self.get_perf_result() + self.BC.config_2_vms_combined(combined=1) + self.BC.config_2_vms_ip() + self.BC.check_ping_between_2_vms() + self.BC.check_scp_file_between_2_vms() + self.BC.run_iperf_test_between_2_vms() + self.BC.check_iperf_result_between_2_vms() def test_packed_tso_with_dpdk_driver(self): """ Test Case 4: VM2VM vhost-user/virtio-net packed ring test TSO with dsa dpdk driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) - dmas = "txq0@%s-q0;rxq0@%s-q1" % (self.use_dsa_list[0], self.use_dsa_list[0]) - port_options = {self.use_dsa_list[0]: "max_queues=2"} + dmas = "txq0@%s-q0;rxq0@%s-q1" % (dsas[0], dsas[0]) + port_options = {dsas[0]: "max_queues=2"} vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=1,tso=1,dmas=[%s]' " "--vdev 'eth_vhost1,iface=vhost-net1,queues=1,tso=1,dmas=[%s]'" @@ -584,23 +473,24 @@ class TestVM2VMVirtioNetPerfDsa(TestCase): cores=self.vhost_core_list, eal_param=vhost_eal_param, param=vhost_param, - ports=self.use_dsa_list[0:1], + ports=dsas[0:1], port_options=port_options, ) self.vm_args = "disable-modern=false,mrg_rxbuf=on,csum=on,guest_csum=on,host_tso4=on,guest_tso4=on,guest_ecn=on,packed=on" self.start_vms(server_mode=False, vm_queue=1) - self.config_vm_ip() - self.check_ping_between_vms() - self.start_iperf() - self.get_perf_result() + self.BC.config_2_vms_ip() + self.BC.check_ping_between_2_vms() + self.BC.check_scp_file_between_2_vms() + self.BC.run_iperf_test_between_2_vms() + self.BC.check_iperf_result_between_2_vms() self.verify_xstats_info_on_vhost() def test_packed_mergeable_8_queues_large_packet_paylocad_with_dpdk_driver(self): """ Test Case 5: VM2VM vhost-user/virtio-net packed ring mergeable path 8 queues test with large packet payload with dsa dpdk driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=2, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=2, driver_name="vfio-pci", socket=self.ports_socket ) dmas = ( "txq0@%s-q0;" @@ -620,25 +510,25 @@ class TestVM2VMVirtioNetPerfDsa(TestCase): "rxq6@%s-q3;" "rxq7@%s-q3" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) ) - port_options = {self.use_dsa_list[0]: "max_queues=4"} + port_options = {dsas[0]: "max_queues=4"} vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=8,tso=1,dmas=[%s]' " "--vdev 'eth_vhost1,iface=vhost-net1,queues=8,tso=1,dmas=[%s]'" @@ -649,30 +539,30 @@ class TestVM2VMVirtioNetPerfDsa(TestCase): cores=self.vhost_core_list, eal_param=vhost_eal_param, param=vhost_param, - ports=self.use_dsa_list[0:1], + ports=dsas[0:1], port_options=port_options, ) self.vm_args = "disable-modern=false,mrg_rxbuf=on,mq=on,vectors=40,csum=on,guest_csum=on,host_tso4=on,guest_tso4=on,guest_ecn=on,guest_ufo=on,host_ufo=on,packed=on" self.start_vms(server_mode=False, vm_queue=8) - self.config_vm_combined(combined=8) - self.config_vm_ip() - self.check_ping_between_vms() - self.check_scp_file_valid_between_vms() - self.start_iperf() - self.get_perf_result() + self.BC.config_2_vms_combined(combined=8) + self.BC.config_2_vms_ip() + self.BC.check_ping_between_2_vms() + self.BC.check_scp_file_between_2_vms() + self.BC.run_iperf_test_between_2_vms() + self.BC.check_iperf_result_between_2_vms() for _ in range(5): - self.check_ping_between_vms() - self.check_scp_file_valid_between_vms() - self.start_iperf() - self.get_perf_result() + self.BC.check_ping_between_2_vms() + self.BC.check_scp_file_between_2_vms() + self.BC.run_iperf_test_between_2_vms() + self.BC.check_iperf_result_between_2_vms() def test_packed_non_mergeable_8_queues_large_packet_paylocad_with_dpdk_driver(self): """ Test Case 6: VM2VM vhost-user/virtio-net packed ring non-mergeable path 8 queues test with large packet payload with dsa dpdk driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=2, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=2, driver_name="vfio-pci", socket=self.ports_socket ) dmas1 = ( "txq0@%s-q0;" @@ -688,18 +578,18 @@ class TestVM2VMVirtioNetPerfDsa(TestCase): "rxq6@%s-q7;" "rxq7@%s-q7" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) ) dmas2 = ( @@ -716,23 +606,23 @@ class TestVM2VMVirtioNetPerfDsa(TestCase): "rxq6@%s-q7;" "rxq7@%s-q7" % ( - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], + dsas[1], + dsas[1], + dsas[1], + dsas[1], + dsas[1], + dsas[1], + dsas[1], + dsas[1], + dsas[1], + dsas[1], + dsas[1], + dsas[1], ) ) port_options = { - self.use_dsa_list[0]: "max_queues=8", - self.use_dsa_list[1]: "max_queues=8", + dsas[0]: "max_queues=8", + dsas[1]: "max_queues=8", } vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=8,tso=1,dmas=[%s]' " @@ -744,34 +634,34 @@ class TestVM2VMVirtioNetPerfDsa(TestCase): cores=self.vhost_core_list, eal_param=vhost_eal_param, param=vhost_param, - ports=self.use_dsa_list, + ports=dsas, port_options=port_options, ) self.vm_args = "disable-modern=false,mrg_rxbuf=off,mq=on,vectors=40,csum=on,guest_csum=on,host_tso4=off,guest_tso4=off,guest_ecn=on,guest_ufo=on,host_ufo=on,packed=on" self.start_vms(server_mode=False, vm_queue=8) - self.config_vm_combined(combined=8) - self.config_vm_ip() - self.check_ping_between_vms() - self.check_scp_file_valid_between_vms() - self.start_iperf() - self.get_perf_result() + self.BC.config_2_vms_combined(combined=8) + self.BC.config_2_vms_ip() + self.BC.check_ping_between_2_vms() + self.BC.check_scp_file_between_2_vms() + self.BC.run_iperf_test_between_2_vms() + self.BC.check_iperf_result_between_2_vms() for _ in range(5): - self.check_ping_between_vms() - self.check_scp_file_valid_between_vms() - self.start_iperf() - self.get_perf_result() + self.BC.check_ping_between_2_vms() + self.BC.check_scp_file_between_2_vms() + self.BC.run_iperf_test_between_2_vms() + self.BC.check_iperf_result_between_2_vms() def test_packed_dma_ring_size_with_tcp_and_dpdk_driver(self): """ Test Case 7: VM2VM vhost-user/virtio-net packed ring test dma-ring-size with tcp traffic and dsa dpdk driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) - dmas1 = "txq0@%s-q0;rxq0@%s-q0" % (self.use_dsa_list[0], self.use_dsa_list[0]) - dmas2 = "txq0@%s-q1;rxq0@%s-q1" % (self.use_dsa_list[0], self.use_dsa_list[0]) - port_options = {self.use_dsa_list[0]: "max_queues=2"} + dmas1 = "txq0@%s-q0;rxq0@%s-q0" % (dsas[0], dsas[0]) + dmas2 = "txq0@%s-q1;rxq0@%s-q1" % (dsas[0], dsas[0]) + port_options = {dsas[0]: "max_queues=2"} vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=1,tso=1,dmas=[%s],dma-ring-size=64' " "--vdev 'eth_vhost1,iface=vhost-net1,queues=1,tso=1,dmas=[%s],dma-ring-size=64'" @@ -782,23 +672,24 @@ class TestVM2VMVirtioNetPerfDsa(TestCase): cores=self.vhost_core_list, eal_param=vhost_eal_param, param=vhost_param, - ports=self.use_dsa_list[0:1], + ports=dsas[0:1], port_options=port_options, ) self.vm_args = "disable-modern=false,mrg_rxbuf=on,csum=on,guest_csum=on,host_tso4=on,guest_tso4=on,guest_ecn=on,packed=on" self.start_vms(server_mode=False, vm_queue=1) - self.config_vm_ip() - self.check_ping_between_vms() - self.start_iperf() - self.get_perf_result() + self.BC.config_2_vms_ip() + self.BC.check_ping_between_2_vms() + self.BC.check_scp_file_between_2_vms() + self.BC.run_iperf_test_between_2_vms() + self.BC.check_iperf_result_between_2_vms() self.verify_xstats_info_on_vhost() def test_packed_mergeable_8_queues_with_legacy_mode_and_dpdk_driver(self): """ Test Case 8: VM2VM vhost-user/virtio-net packed ring mergeable path 8 queues test with legacy mode with dsa dpdk driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) dmas = ( "txq0@%s-q0;" @@ -818,25 +709,25 @@ class TestVM2VMVirtioNetPerfDsa(TestCase): "rxq6@%s-q1;" "rxq7@%s-q1" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) ) - port_options = {self.use_dsa_list[0]: "max_queues=4"} + port_options = {dsas[0]: "max_queues=4"} vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=8,tso=1,legacy-ol-flags=1,dmas=[%s]' " "--vdev 'eth_vhost1,iface=vhost-net1,queues=8,tso=1,legacy-ol-flags=1,dmas=[%s]'" @@ -847,30 +738,30 @@ class TestVM2VMVirtioNetPerfDsa(TestCase): cores=self.vhost_core_list, eal_param=vhost_eal_param, param=vhost_param, - ports=self.use_dsa_list[0:1], + ports=dsas[0:1], port_options=port_options, ) self.vm_args = "disable-modern=false,mrg_rxbuf=on,mq=on,vectors=40,csum=on,guest_csum=on,host_tso4=on,guest_tso4=on,guest_ecn=on,guest_ufo=on,host_ufo=on,packed=on" self.start_vms(server_mode=False, vm_queue=8) - self.config_vm_combined(combined=8) - self.config_vm_ip() - self.check_ping_between_vms() - self.check_scp_file_valid_between_vms() - self.start_iperf() - self.get_perf_result() + self.BC.config_2_vms_combined(combined=8) + self.BC.config_2_vms_ip() + self.BC.check_ping_between_2_vms() + self.BC.check_scp_file_between_2_vms() + self.BC.run_iperf_test_between_2_vms() + self.BC.check_iperf_result_between_2_vms() for _ in range(5): - self.check_ping_between_vms() - self.check_scp_file_valid_between_vms() - self.start_iperf() - self.get_perf_result() + self.BC.check_ping_between_2_vms() + self.BC.check_scp_file_between_2_vms() + self.BC.run_iperf_test_between_2_vms() + self.BC.check_iperf_result_between_2_vms() def test_split_tso_with_kernel_driver(self): """ Test Case 9: VM2VM vhost-user/virtio-net split ring test TSO with dsa kernel driver """ - self.DC.create_work_queue(work_queue_number=1, dsa_index=0) - dmas = "txq0@wq0.0;rxq0@wq0.0" + wqs = self.DC.create_wq(wq_num=1, dsa_idxs=[0]) + dmas = "txq0@%s;rxq0@%s" % (wqs[0], wqs[0]) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=1,tso=1,dmas=[%s]' " "--vdev 'eth_vhost1,iface=vhost-net1,queues=1,tso=1,dmas=[%s]'" @@ -885,53 +776,87 @@ class TestVM2VMVirtioNetPerfDsa(TestCase): ) self.vm_args = "disable-modern=false,mrg_rxbuf=off,mq=on,vectors=40,csum=on,guest_csum=on,host_tso4=on,guest_tso4=on,guest_ecn=on,guest_ufo=on,host_ufo=on" self.start_vms(server_mode=False, vm_queue=1) - self.config_vm_ip() - self.check_ping_between_vms() - self.start_iperf() - self.get_perf_result() + self.BC.config_2_vms_ip() + self.BC.check_ping_between_2_vms() + self.BC.check_scp_file_between_2_vms() + self.BC.run_iperf_test_between_2_vms() + self.BC.check_iperf_result_between_2_vms() self.verify_xstats_info_on_vhost() def test_split_mergeable_8_queues_large_packet_paylocad_with_kernel_driver(self): """ Test Case 10: VM2VM vhost-user/virtio-net split ring mergeable path 8 queues test with large packet payload with dsa kernel driver """ - self.DC.create_work_queue(work_queue_number=8, dsa_index=0) - self.DC.create_work_queue(work_queue_number=8, dsa_index=1) + wqs = self.DC.create_wq(wq_num=8, dsa_idxs=[0, 1]) dmas1 = ( - "txq0@wq0.0;" - "txq1@wq0.1;" - "txq2@wq0.2;" - "txq3@wq0.3;" - "txq4@wq0.4;" - "txq5@wq0.5;" - "txq6@wq0.6;" - "txq7@wq0.7;" - "rxq0@wq0.0;" - "rxq1@wq0.1;" - "rxq2@wq0.2;" - "rxq3@wq0.3;" - "rxq4@wq0.4;" - "rxq5@wq0.5;" - "rxq6@wq0.6;" - "rxq7@wq0.7" + "txq0@%s;" + "txq1@%s;" + "txq2@%s;" + "txq3@%s;" + "txq4@%s;" + "txq5@%s;" + "txq6@%s;" + "txq7@%s;" + "rxq0@%s;" + "rxq1@%s;" + "rxq2@%s;" + "rxq3@%s;" + "rxq4@%s;" + "rxq5@%s;" + "rxq6@%s;" + "rxq7@%s" + ) % ( + wqs[0], + wqs[1], + wqs[2], + wqs[3], + wqs[4], + wqs[5], + wqs[6], + wqs[7], + wqs[0], + wqs[1], + wqs[2], + wqs[3], + wqs[4], + wqs[5], + wqs[6], + wqs[7], ) dmas2 = ( - "txq0@wq1.0;" - "txq1@wq1.1;" - "txq2@wq1.2;" - "txq3@wq1.3;" - "txq4@wq1.4;" - "txq5@wq1.5;" - "txq6@wq1.6;" - "txq7@wq1.7;" - "rxq0@wq1.0;" - "rxq1@wq1.1;" - "rxq2@wq1.2;" - "rxq3@wq1.3;" - "rxq4@wq1.4;" - "rxq5@wq1.5;" - "rxq6@wq1.6;" - "rxq7@wq1.7" + "txq0@%s;" + "txq1@%s;" + "txq2@%s;" + "txq3@%s;" + "txq4@%s;" + "txq5@%s;" + "txq6@%s;" + "txq7@%s;" + "rxq0@%s;" + "rxq1@%s;" + "rxq2@%s;" + "rxq3@%s;" + "rxq4@%s;" + "rxq5@%s;" + "rxq6@%s;" + "rxq7@%s" + ) % ( + wqs[8], + wqs[9], + wqs[10], + wqs[11], + wqs[12], + wqs[13], + wqs[14], + wqs[15], + wqs[8], + wqs[9], + wqs[10], + wqs[11], + wqs[12], + wqs[13], + wqs[14], + wqs[15], ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,client=1,queues=8,tso=1,dmas=[%s]' " @@ -947,41 +872,69 @@ class TestVM2VMVirtioNetPerfDsa(TestCase): ) self.vm_args = "disable-modern=false,mrg_rxbuf=on,mq=on,vectors=40,csum=on,guest_csum=on,host_tso4=on,guest_tso4=on,guest_ecn=on,guest_ufo=on,host_ufo=on" self.start_vms(server_mode=True, vm_queue=8) - self.config_vm_combined(combined=8) - self.config_vm_ip() - self.check_ping_between_vms() - self.check_scp_file_valid_between_vms() - self.start_iperf() - self.get_perf_result() + self.BC.config_2_vms_combined(combined=8) + self.BC.config_2_vms_ip() + self.BC.check_ping_between_2_vms() + self.BC.check_scp_file_between_2_vms() + self.BC.run_iperf_test_between_2_vms() + self.BC.check_iperf_result_between_2_vms() self.vhost_user_pmd.quit() dmas1 = ( - "txq0@wq0.0;" - "txq1@wq0.0;" - "txq2@wq0.0;" - "txq3@wq0.0;" - "txq4@wq0.1;" - "txq5@wq0.1;" - "rxq2@wq0.1;" - "rxq3@wq0.1;" - "rxq4@wq0.2;" - "rxq5@wq0.2;" - "rxq6@wq0.2;" - "rxq7@wq0.2" + "txq0@%s;" + "txq1@%s;" + "txq2@%s;" + "txq3@%s;" + "txq4@%s;" + "txq5@%s;" + "rxq2@%s;" + "rxq3@%s;" + "rxq4@%s;" + "rxq5@%s;" + "rxq6@%s;" + "rxq7@%s" + % ( + wqs[0], + wqs[0], + wqs[0], + wqs[0], + wqs[1], + wqs[1], + wqs[1], + wqs[1], + wqs[2], + wqs[2], + wqs[2], + wqs[2], + ) ) dmas2 = ( - "txq0@wq0.3;" - "txq1@wq0.3;" - "txq2@wq0.3;" - "txq3@wq0.3;" - "txq4@wq0.4;" - "txq5@wq0.4;" - "rxq2@wq0.4;" - "rxq3@wq0.4;" - "rxq4@wq0.5;" - "rxq5@wq0.5;" - "rxq6@wq0.5;" - "rxq7@wq0.5" + "txq0@%s;" + "txq1@%s;" + "txq2@%s;" + "txq3@%s;" + "txq4@%s;" + "txq5@%s;" + "rxq2@%s;" + "rxq3@%s;" + "rxq4@%s;" + "rxq5@%s;" + "rxq6@%s;" + "rxq7@%s" + % ( + wqs[3], + wqs[3], + wqs[3], + wqs[3], + wqs[4], + wqs[4], + wqs[4], + wqs[4], + wqs[5], + wqs[5], + wqs[5], + wqs[5], + ) ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,client=1,queues=8,tso=1,dmas=[%s]' " @@ -1011,11 +964,12 @@ class TestVM2VMVirtioNetPerfDsa(TestCase): param=vhost_param, no_pci=True, ) - self.config_vm_combined(combined=4) - self.check_ping_between_vms() - self.check_scp_file_valid_between_vms() - self.start_iperf() - self.get_perf_result() + self.BC.config_2_vms_combined(combined=4) + self.BC.config_2_vms_ip() + self.BC.check_ping_between_2_vms() + self.BC.check_scp_file_between_2_vms() + self.BC.run_iperf_test_between_2_vms() + self.BC.check_iperf_result_between_2_vms() self.vhost_user_pmd.quit() vhost_eal_param = ( @@ -1029,11 +983,12 @@ class TestVM2VMVirtioNetPerfDsa(TestCase): param=vhost_param, no_pci=True, ) - self.config_vm_combined(combined=1) - self.check_ping_between_vms() - self.check_scp_file_valid_between_vms() - self.start_iperf() - self.get_perf_result() + self.BC.config_2_vms_combined(combined=1) + self.BC.config_2_vms_ip() + self.BC.check_ping_between_2_vms() + self.BC.check_scp_file_between_2_vms() + self.BC.run_iperf_test_between_2_vms() + self.BC.check_iperf_result_between_2_vms() def test_split_non_mergeable_8_queues_large_packet_paylocad_with_kernel_driver( self, @@ -1041,35 +996,62 @@ class TestVM2VMVirtioNetPerfDsa(TestCase): """ Test Case 11: VM2VM vhost-user/virtio-net split ring non-mergeable path 8 queues test with large packet payload with dsa kernel driver """ - self.DC.create_work_queue(work_queue_number=8, dsa_index=0) - self.DC.create_work_queue(work_queue_number=8, dsa_index=1) + wqs = self.DC.create_wq(wq_num=8, dsa_idxs=[0, 1]) dmas1 = ( - "txq0@wq0.0;" - "txq1@wq0.0;" - "txq2@wq0.0;" - "txq3@wq0.0;" - "txq4@wq0.1;" - "txq5@wq0.1;" - "rxq2@wq0.1;" - "rxq3@wq0.1;" - "rxq4@wq0.2;" - "rxq5@wq0.2;" - "rxq6@wq0.2;" - "rxq7@wq0.2" + "txq0@%s;" + "txq1@%s;" + "txq2@%s;" + "txq3@%s;" + "txq4@%s;" + "txq5@%s;" + "rxq2@%s;" + "rxq3@%s;" + "rxq4@%s;" + "rxq5@%s;" + "rxq6@%s;" + "rxq7@%s" + % ( + wqs[0], + wqs[0], + wqs[0], + wqs[0], + wqs[1], + wqs[1], + wqs[1], + wqs[1], + wqs[2], + wqs[2], + wqs[2], + wqs[2], + ) ) dmas2 = ( - "txq0@wq1.0;" - "txq1@wq1.0;" - "txq2@wq1.0;" - "txq3@wq1.0;" - "txq4@wq1.1;" - "txq5@wq1.1;" - "rxq2@wq1.1;" - "rxq3@wq1.1;" - "rxq4@wq1.2;" - "rxq5@wq1.2;" - "rxq6@wq1.2;" - "rxq7@wq1.2" + "txq0@%s;" + "txq1@%s;" + "txq2@%s;" + "txq3@%s;" + "txq4@%s;" + "txq5@%s;" + "rxq2@%s;" + "rxq3@%s;" + "rxq4@%s;" + "rxq5@%s;" + "rxq6@%s;" + "rxq7@%s" + % ( + wqs[3], + wqs[3], + wqs[3], + wqs[3], + wqs[4], + wqs[4], + wqs[4], + wqs[4], + wqs[5], + wqs[5], + wqs[5], + wqs[5], + ) ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,client=1,queues=8,tso=1,dmas=[%s]' " @@ -1085,12 +1067,12 @@ class TestVM2VMVirtioNetPerfDsa(TestCase): ) self.vm_args = "disable-modern=false,mrg_rxbuf=off,mq=on,vectors=40,csum=on,guest_csum=on,host_tso4=off,guest_tso4=off,guest_ecn=on,guest_ufo=on,host_ufo=on" self.start_vms(server_mode=True, vm_queue=8) - self.config_vm_combined(combined=8) - self.config_vm_ip() - self.check_ping_between_vms() - self.check_scp_file_valid_between_vms() - self.start_iperf() - self.get_perf_result() + self.BC.config_2_vms_combined(combined=8) + self.BC.config_2_vms_ip() + self.BC.check_ping_between_2_vms() + self.BC.check_scp_file_between_2_vms() + self.BC.run_iperf_test_between_2_vms() + self.BC.check_iperf_result_between_2_vms() self.vhost_user_pmd.quit() vhost_eal_param = ( @@ -1104,11 +1086,10 @@ class TestVM2VMVirtioNetPerfDsa(TestCase): param=vhost_param, no_pci=True, ) - self.check_ping_between_vms() - self.check_scp_file_valid_between_vms() - self.start_iperf() - self.get_perf_result() - + self.BC.check_ping_between_2_vms() + self.BC.check_scp_file_between_2_vms() + self.BC.run_iperf_test_between_2_vms() + self.BC.check_iperf_result_between_2_vms() self.vhost_user_pmd.quit() vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,client=1,queues=4,tso=1' " @@ -1121,18 +1102,19 @@ class TestVM2VMVirtioNetPerfDsa(TestCase): param=vhost_param, no_pci=True, ) - self.config_vm_combined(combined=1) - self.check_ping_between_vms() - self.check_scp_file_valid_between_vms() - self.start_iperf() - self.get_perf_result() + self.BC.config_2_vms_combined(combined=1) + self.BC.config_2_vms_ip() + self.BC.check_ping_between_2_vms() + self.BC.check_scp_file_between_2_vms() + self.BC.run_iperf_test_between_2_vms() + self.BC.check_iperf_result_between_2_vms() def test_packed_tso_with_kernel_driver(self): """ Test Case 12: VM2VM vhost-user/virtio-net packed ring test TSO with dsa kernel driver """ - self.DC.create_work_queue(work_queue_number=1, dsa_index=0) - dmas = "txq0@wq0.0;rxq0@wq0.0" + wqs = self.DC.create_wq(wq_num=1, dsa_idxs=[0]) + dmas = "txq0@%s;rxq0@%s" % (wqs[0], wqs[0]) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=1,tso=1,dmas=[%s]' " "--vdev 'eth_vhost1,iface=vhost-net1,queues=1,tso=1,dmas=[%s]'" @@ -1147,45 +1129,73 @@ class TestVM2VMVirtioNetPerfDsa(TestCase): ) self.vm_args = "disable-modern=false,mrg_rxbuf=on,csum=on,guest_csum=on,host_tso4=on,guest_tso4=on,guest_ecn=on,packed=on" self.start_vms(server_mode=False, vm_queue=1) - self.config_vm_ip() - self.check_ping_between_vms() - self.start_iperf() - self.get_perf_result() + self.BC.config_2_vms_ip() + self.BC.check_ping_between_2_vms() + self.BC.check_scp_file_between_2_vms() + self.BC.run_iperf_test_between_2_vms() + self.BC.check_iperf_result_between_2_vms() self.verify_xstats_info_on_vhost() def test_packed_mergeable_8_queues_large_packet_paylocad_with_kernel_driver(self): """ Test Case 13: VM2VM vhost-user/virtio-net packed ring mergeable path 8 queues test with large packet payload with dsa kernel driver """ - self.DC.create_work_queue(work_queue_number=8, dsa_index=0) - self.DC.create_work_queue(work_queue_number=8, dsa_index=1) + wqs = self.DC.create_wq(wq_num=8, dsa_idxs=[0, 1]) dmas1 = ( - "txq0@wq0.0;" - "txq1@wq0.1;" - "txq2@wq0.2;" - "txq3@wq0.3;" - "txq4@wq0.4;" - "txq5@wq0.5;" - "rxq2@wq0.2;" - "rxq3@wq0.3;" - "rxq4@wq0.4;" - "rxq5@wq0.5;" - "rxq6@wq0.6;" - "rxq7@wq0.7" + "txq0@%s;" + "txq1@%s;" + "txq2@%s;" + "txq3@%s;" + "txq4@%s;" + "txq5@%s;" + "rxq2@%s;" + "rxq3@%s;" + "rxq4@%s;" + "rxq5@%s;" + "rxq6@%s;" + "rxq7@%s" + % ( + wqs[0], + wqs[1], + wqs[2], + wqs[3], + wqs[4], + wqs[5], + wqs[2], + wqs[3], + wqs[4], + wqs[5], + wqs[6], + wqs[7], + ) ) dmas2 = ( - "txq0@wq1.0;" - "txq1@wq1.1;" - "txq2@wq1.2;" - "txq3@wq1.3;" - "txq4@wq1.4;" - "txq5@wq1.5;" - "rxq2@wq1.2;" - "rxq3@wq1.3;" - "rxq4@wq1.4;" - "rxq5@wq1.5;" - "rxq6@wq1.6;" - "rxq7@wq1.7" + "txq0@%s;" + "txq1@%s;" + "txq2@%s;" + "txq3@%s;" + "txq4@%s;" + "txq5@%s;" + "rxq2@%s;" + "rxq3@%s;" + "rxq4@%s;" + "rxq5@%s;" + "rxq6@%s;" + "rxq7@%s" + % ( + wqs[8], + wqs[9], + wqs[10], + wqs[11], + wqs[12], + wqs[13], + wqs[10], + wqs[11], + wqs[12], + wqs[13], + wqs[14], + wqs[15], + ) ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=8,tso=1,dmas=[%s]' " @@ -1201,18 +1211,18 @@ class TestVM2VMVirtioNetPerfDsa(TestCase): ) self.vm_args = "mrg_rxbuf=on,mq=on,vectors=40,csum=on,guest_csum=on,host_tso4=on,guest_tso4=on,guest_ecn=on,guest_ufo=on,host_ufo=on,packed=on" self.start_vms(server_mode=False, vm_queue=8) - self.config_vm_combined(combined=8) - self.config_vm_ip() - self.check_ping_between_vms() - self.check_scp_file_valid_between_vms() - self.start_iperf() - self.get_perf_result() + self.BC.config_2_vms_combined(combined=8) + self.BC.config_2_vms_ip() + self.BC.check_ping_between_2_vms() + self.BC.check_scp_file_between_2_vms() + self.BC.run_iperf_test_between_2_vms() + self.BC.check_iperf_result_between_2_vms() for _ in range(5): - self.check_ping_between_vms() - self.check_scp_file_valid_between_vms() - self.start_iperf() - self.get_perf_result() + self.BC.check_ping_between_2_vms() + self.BC.check_scp_file_between_2_vms() + self.BC.run_iperf_test_between_2_vms() + self.BC.check_iperf_result_between_2_vms() def test_packed_non_mergeable_8_queues_large_packet_paylocad_with_kernel_driver( self, @@ -1220,43 +1230,78 @@ class TestVM2VMVirtioNetPerfDsa(TestCase): """ Test Case 14: VM2VM vhost-user/virtio-net packed ring non-mergeable path 8 queues test with large packet payload with dsa kernel driver """ - self.DC.create_work_queue(work_queue_number=4, dsa_index=0) - self.DC.create_work_queue(work_queue_number=4, dsa_index=1) + wqs = self.DC.create_wq(wq_num=4, dsa_idxs=[0, 1]) dmas1 = ( - "txq0@wq0.0;" - "txq1@wq0.0;" - "txq2@wq0.1;" - "txq3@wq0.1;" - "txq4@wq0.2;" - "txq5@wq0.2;" - "txq6@wq0.3;" - "txq7@wq0.3;" - "rxq0@wq0.0;" - "rxq1@wq0.0;" - "rxq2@wq0.1;" - "rxq3@wq0.1;" - "rxq4@wq0.2;" - "rxq5@wq0.2;" - "rxq6@wq0.3;" - "rxq7@wq0.3" + "txq0@%s;" + "txq1@%s;" + "txq2@%s;" + "txq3@%s;" + "txq4@%s;" + "txq5@%s;" + "txq6@%s;" + "txq7@%s;" + "rxq0@%s;" + "rxq1@%s;" + "rxq2@%s;" + "rxq3@%s;" + "rxq4@%s;" + "rxq5@%s;" + "rxq6@%s;" + "rxq7@%s" + % ( + wqs[0], + wqs[0], + wqs[1], + wqs[1], + wqs[2], + wqs[2], + wqs[3], + wqs[3], + wqs[0], + wqs[0], + wqs[1], + wqs[1], + wqs[2], + wqs[2], + wqs[3], + wqs[3], + ) ) dmas2 = ( - "txq0@wq0.0;" - "txq1@wq0.0;" - "txq2@wq0.1;" - "txq3@wq0.1;" - "txq4@wq0.2;" - "txq5@wq0.2;" - "txq6@wq0.3;" - "txq7@wq0.3;" - "rxq0@wq0.0;" - "rxq1@wq0.0;" - "rxq2@wq0.1;" - "rxq3@wq0.1;" - "rxq4@wq0.2;" - "rxq5@wq0.2;" - "rxq6@wq0.3;" - "rxq7@wq0.3" + "txq0@%s;" + "txq1@%s;" + "txq2@%s;" + "txq3@%s;" + "txq4@%s;" + "txq5@%s;" + "txq6@%s;" + "txq7@%s;" + "rxq0@%s;" + "rxq1@%s;" + "rxq2@%s;" + "rxq3@%s;" + "rxq4@%s;" + "rxq5@%s;" + "rxq6@%s;" + "rxq7@%s" + % ( + wqs[0], + wqs[0], + wqs[1], + wqs[1], + wqs[2], + wqs[2], + wqs[3], + wqs[3], + wqs[0], + wqs[0], + wqs[1], + wqs[1], + wqs[2], + wqs[2], + wqs[3], + wqs[3], + ) ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=8,tso=1,dmas=[%s]' " @@ -1272,27 +1317,26 @@ class TestVM2VMVirtioNetPerfDsa(TestCase): ) self.vm_args = "disable-modern=false,mrg_rxbuf=off,mq=on,vectors=40,csum=on,guest_csum=on,host_tso4=on,guest_tso4=on,guest_ecn=on,guest_ufo=on,host_ufo=on,packed=on" self.start_vms(server_mode=False, vm_queue=8) - self.config_vm_combined(combined=8) - self.config_vm_ip() - self.check_ping_between_vms() - self.check_scp_file_valid_between_vms() - self.start_iperf() - self.get_perf_result() + self.BC.config_2_vms_combined(combined=8) + self.BC.config_2_vms_ip() + self.BC.check_ping_between_2_vms() + self.BC.check_scp_file_between_2_vms() + self.BC.run_iperf_test_between_2_vms() + self.BC.check_iperf_result_between_2_vms() for _ in range(5): - self.check_ping_between_vms() - self.check_scp_file_valid_between_vms() - self.start_iperf() - self.get_perf_result() + self.BC.check_ping_between_2_vms() + self.BC.check_scp_file_between_2_vms() + self.BC.run_iperf_test_between_2_vms() + self.BC.check_iperf_result_between_2_vms() def test_split_non_mergeable_16_queues_with_rx_tx_csum_in_sw(self): """ Test Case 15: VM2VM vhost-user/virtio-net split ring non-mergeable 16 queues test with Rx/Tx csum in SW """ - self.DC.create_work_queue(work_queue_number=8, dsa_index=0) - self.DC.create_work_queue(work_queue_number=8, dsa_index=1) - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=2, + wqs = self.DC.create_wq(wq_num=8, dsa_idxs=[0, 1]) + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=2, driver_name="vfio-pci", dsa_index_list=[2, 3], socket=self.ports_socket, @@ -1314,39 +1358,55 @@ class TestVM2VMVirtioNetPerfDsa(TestCase): "txq13@%s-q0;" "txq14@%s-q0;" "txq15@%s-q0;" - "rxq0@wq0.0;" - "rxq1@wq0.0;" - "rxq2@wq0.0;" - "rxq3@wq0.0;" - "rxq4@wq0.0;" - "rxq5@wq0.0;" - "rxq6@wq0.0;" - "rxq7@wq0.0;" - "rxq8@wq0.0;" - "rxq9@wq0.0;" - "rxq10@wq0.0;" - "rxq11@wq0.0;" - "rxq12@wq0.0;" - "rxq13@wq0.0;" - "rxq14@wq0.0;" - "rxq15@wq0.0" + "rxq0@%s;" + "rxq1@%s;" + "rxq2@%s;" + "rxq3@%s;" + "rxq4@%s;" + "rxq5@%s;" + "rxq6@%s;" + "rxq7@%s;" + "rxq8@%s;" + "rxq9@%s;" + "rxq10@%s;" + "rxq11@%s;" + "rxq12@%s;" + "rxq13@%s;" + "rxq14@%s;" + "rxq15@%s" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + wqs[0], + wqs[0], + wqs[0], + wqs[0], + wqs[0], + wqs[0], + wqs[0], + wqs[0], + wqs[0], + wqs[0], + wqs[0], + wqs[0], + wqs[0], + wqs[0], + wqs[0], + wqs[0], ) ) dmas2 = ( @@ -1366,39 +1426,55 @@ class TestVM2VMVirtioNetPerfDsa(TestCase): "txq13@%s-q5;" "txq14@%s-q6;" "txq15@%s-q7;" - "rxq0@wq0.0;" - "rxq1@wq0.1;" - "rxq2@wq0.2;" - "rxq3@wq0.3;" - "rxq4@wq0.4;" - "rxq5@wq0.5;" - "rxq6@wq0.6;" - "rxq7@wq0.7;" - "rxq8@wq1.0;" - "rxq9@wq1.1;" - "rxq10@wq1.2;" - "rxq11@wq1.3;" - "rxq12@wq1.4;" - "rxq13@wq1.5;" - "rxq14@wq1.6;" - "rxq15@wq1.7" + "rxq0@%s;" + "rxq1@%s;" + "rxq2@%s;" + "rxq3@%s;" + "rxq4@%s;" + "rxq5@%s;" + "rxq6@%s;" + "rxq7@%s;" + "rxq8@%s;" + "rxq9@%s;" + "rxq10@%s;" + "rxq11@%s;" + "rxq12@%s;" + "rxq13@%s;" + "rxq14@%s;" + "rxq15@%s" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[1], + dsas[1], + dsas[1], + dsas[1], + dsas[1], + dsas[1], + dsas[1], + dsas[1], + wqs[0], + wqs[1], + wqs[2], + wqs[3], + wqs[4], + wqs[5], + wqs[6], + wqs[7], + wqs[8], + wqs[9], + wqs[10], + wqs[11], + wqs[12], + wqs[13], + wqs[14], + wqs[15], ) ) vhost_eal_param = ( @@ -1411,7 +1487,7 @@ class TestVM2VMVirtioNetPerfDsa(TestCase): cores=self.vhost_core_list, eal_param=vhost_eal_param, param=vhost_param, - ports=self.use_dsa_list, + ports=dsas, ) self.vhost_user_pmd.execute_cmd("stop") self.vhost_user_pmd.execute_cmd("set fwd csum") @@ -1425,12 +1501,12 @@ class TestVM2VMVirtioNetPerfDsa(TestCase): self.vhost_user_pmd.execute_cmd("start") self.vm_args = "disable-modern=false,mrg_rxbuf=off,mq=on,vectors=40,csum=on,guest_csum=off,host_tso4=on,guest_tso4=on,guest_ecn=on,guest_ufo=on,host_ufo=on" self.start_vms(server_mode=True, vm_queue=16) - self.config_vm_combined(combined=16) - self.config_vm_ip() - self.check_ping_between_vms() - self.check_scp_file_valid_between_vms() - self.start_iperf() - self.get_perf_result() + self.BC.config_2_vms_combined(combined=16) + self.BC.config_2_vms_ip() + self.BC.check_ping_between_2_vms() + self.BC.check_scp_file_between_2_vms() + self.BC.run_iperf_test_between_2_vms() + self.BC.check_iperf_result_between_2_vms() self.vhost_user_pmd.quit() dmas1 = ( @@ -1447,29 +1523,39 @@ class TestVM2VMVirtioNetPerfDsa(TestCase): "rxq6@%s-q6;" "rxq7@%s-q6" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) ) dmas2 = ( - "txq12@wq1.0;" - "txq13@wq1.0;" - "txq14@wq1.0;" - "txq15@wq1.0;" - "rxq12@wq1.1;" - "rxq13@wq1.1;" - "rxq14@wq1.1;" - "rxq15@wq1.1" + "txq12@%s;" + "txq13@%s;" + "txq14@%s;" + "txq15@%s;" + "rxq12@%s;" + "rxq13@%s;" + "rxq14@%s;" + "rxq15@%s" + % ( + wqs[8], + wqs[8], + wqs[8], + wqs[8], + wqs[9], + wqs[9], + wqs[9], + wqs[9], + ) ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,client=1,queues=16,tso=1,dmas=[%s]' " @@ -1481,12 +1567,12 @@ class TestVM2VMVirtioNetPerfDsa(TestCase): cores=self.vhost_core_list, eal_param=vhost_eal_param, param=vhost_param, - ports=self.use_dsa_list, + ports=dsas, ) - self.check_ping_between_vms() - self.check_scp_file_valid_between_vms() - self.start_iperf() - self.get_perf_result() + self.BC.check_ping_between_2_vms() + self.BC.check_scp_file_between_2_vms() + self.BC.run_iperf_test_between_2_vms() + self.BC.check_iperf_result_between_2_vms() self.vhost_user_pmd.quit() vhost_eal_param = ( @@ -1500,10 +1586,10 @@ class TestVM2VMVirtioNetPerfDsa(TestCase): param=vhost_param, no_pci=True, ) - self.check_ping_between_vms() - self.check_scp_file_valid_between_vms() - self.start_iperf() - self.get_perf_result() + self.BC.check_ping_between_2_vms() + self.BC.check_scp_file_between_2_vms() + self.BC.run_iperf_test_between_2_vms() + self.BC.check_iperf_result_between_2_vms() self.vhost_user_pmd.quit() vhost_eal_param = ( @@ -1517,20 +1603,19 @@ class TestVM2VMVirtioNetPerfDsa(TestCase): param=vhost_param, no_pci=True, ) - self.config_vm_combined(combined=1) - self.check_ping_between_vms() - self.check_scp_file_valid_between_vms() - self.start_iperf() - self.get_perf_result() + self.BC.config_2_vms_combined(combined=1) + self.BC.check_ping_between_2_vms() + self.BC.check_scp_file_between_2_vms() + self.BC.run_iperf_test_between_2_vms() + self.BC.check_iperf_result_between_2_vms() def test_packed_mergeable_16_queues_with_rx_tx_csum_in_sw(self): """ Test Case 16: VM2VM vhost-user/virtio-net packed ring mergeable 16 queues test with Rx/Tx csum in SW """ - self.DC.create_work_queue(work_queue_number=8, dsa_index=0) - self.DC.create_work_queue(work_queue_number=8, dsa_index=1) - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=2, + wqs = self.DC.create_wq(wq_num=8, dsa_idxs=[0, 1]) + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=2, driver_name="vfio-pci", dsa_index_list=[2, 3], socket=self.ports_socket, @@ -1552,39 +1637,55 @@ class TestVM2VMVirtioNetPerfDsa(TestCase): "txq13@%s-q0;" "txq14@%s-q0;" "txq15@%s-q0;" - "rxq0@wq0.0;" - "rxq1@wq0.0;" - "rxq2@wq0.0;" - "rxq3@wq0.0;" - "rxq4@wq0.0;" - "rxq5@wq0.0;" - "rxq6@wq0.0;" - "rxq7@wq0.0;" - "rxq8@wq0.0;" - "rxq9@wq0.0;" - "rxq10@wq0.0;" - "rxq11@wq0.0;" - "rxq12@wq0.0;" - "rxq13@wq0.0;" - "rxq14@wq0.0;" - "rxq15@wq0.0" + "rxq0@%s;" + "rxq1@%s;" + "rxq2@%s;" + "rxq3@%s;" + "rxq4@%s;" + "rxq5@%s;" + "rxq6@%s;" + "rxq7@%s;" + "rxq8@%s;" + "rxq9@%s;" + "rxq10@%s;" + "rxq11@%s;" + "rxq12@%s;" + "rxq13@%s;" + "rxq14@%s;" + "rxq15@%s" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + wqs[0], + wqs[0], + wqs[0], + wqs[0], + wqs[0], + wqs[0], + wqs[0], + wqs[0], + wqs[0], + wqs[0], + wqs[0], + wqs[0], + wqs[0], + wqs[0], + wqs[0], + wqs[0], ) ) dmas2 = ( @@ -1604,39 +1705,55 @@ class TestVM2VMVirtioNetPerfDsa(TestCase): "txq13@%s-q5;" "txq14@%s-q6;" "txq15@%s-q7;" - "rxq0@wq0.0;" - "rxq1@wq0.1;" - "rxq2@wq0.2;" - "rxq3@wq0.3;" - "rxq4@wq0.4;" - "rxq5@wq0.5;" - "rxq6@wq0.6;" - "rxq7@wq0.7;" - "rxq8@wq1.0;" - "rxq9@wq1.1;" - "rxq10@wq1.2;" - "rxq11@wq1.3;" - "rxq12@wq1.4;" - "rxq13@wq1.5;" - "rxq14@wq1.6;" - "rxq15@wq1.7" + "rxq0@%s;" + "rxq1@%s;" + "rxq2@%s;" + "rxq3@%s;" + "rxq4@%s;" + "rxq5@%s;" + "rxq6@%s;" + "rxq7@%s;" + "rxq8@%s;" + "rxq9@%s;" + "rxq10@%s;" + "rxq11@%s;" + "rxq12@%s;" + "rxq13@%s;" + "rxq14@%s;" + "rxq15@%s" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], + dsas[1], + dsas[1], + dsas[1], + dsas[1], + dsas[1], + dsas[1], + dsas[1], + dsas[1], + wqs[0], + wqs[1], + wqs[2], + wqs[3], + wqs[4], + wqs[5], + wqs[6], + wqs[7], + wqs[8], + wqs[9], + wqs[10], + wqs[11], + wqs[12], + wqs[13], + wqs[14], + wqs[15], ) ) vhost_eal_param = ( @@ -1649,7 +1766,7 @@ class TestVM2VMVirtioNetPerfDsa(TestCase): cores=self.vhost_core_list, eal_param=vhost_eal_param, param=vhost_param, - ports=self.use_dsa_list, + ports=dsas, ) self.vhost_user_pmd.execute_cmd("stop") self.vhost_user_pmd.execute_cmd("set fwd csum") @@ -1663,18 +1780,18 @@ class TestVM2VMVirtioNetPerfDsa(TestCase): self.vhost_user_pmd.execute_cmd("start") self.vm_args = "disable-modern=false,mrg_rxbuf=on,mq=on,vectors=40,csum=on,guest_csum=off,host_tso4=on,guest_tso4=on,guest_ecn=on,guest_ufo=on,host_ufo=on,packed=on" self.start_vms(server_mode=False, vm_queue=16) - self.config_vm_ip() - self.config_vm_combined(combined=16) - self.check_ping_between_vms() - self.check_scp_file_valid_between_vms() - self.start_iperf() - self.get_perf_result() + self.BC.config_2_vms_combined(combined=16) + self.BC.config_2_vms_ip() + self.BC.check_ping_between_2_vms() + self.BC.check_scp_file_between_2_vms() + self.BC.run_iperf_test_between_2_vms() + self.BC.check_iperf_result_between_2_vms() for _ in range(5): - self.check_ping_between_vms() - self.check_scp_file_valid_between_vms() - self.start_iperf() - self.get_perf_result() + self.BC.check_ping_between_2_vms() + self.BC.check_scp_file_between_2_vms() + self.BC.run_iperf_test_between_2_vms() + self.BC.check_iperf_result_between_2_vms() def stop_all_apps(self): for i in range(len(self.vm)): @@ -1685,8 +1802,7 @@ class TestVM2VMVirtioNetPerfDsa(TestCase): self.stop_all_apps() self.dut.kill_all() self.dut.send_expect("killall -s INT %s" % self.testpmd_name, "#") - self.DC.reset_all_work_queue() - self.DC.bind_all_dsa_to_kernel() + self.dut.send_expect("killall -s INT qemu-system-x86_64", "#") def tear_down_all(self): self.dut.close_session(self.vhost_user) diff --git a/tests/TestSuite_vm2vm_virtio_pmd_dsa.py b/tests/TestSuite_vm2vm_virtio_pmd_dsa.py index c4353661..6ae9f165 100644 --- a/tests/TestSuite_vm2vm_virtio_pmd_dsa.py +++ b/tests/TestSuite_vm2vm_virtio_pmd_dsa.py @@ -42,9 +42,6 @@ class TestVM2VMVirtioPmdDsa(TestCase): self.vm_num = 2 self.vm_dut = [] self.vm = [] - self.use_dsa_list = [] - self.DC.reset_all_work_queue() - self.DC.bind_all_dsa_to_kernel() @property def check_2M_env(self): @@ -99,7 +96,6 @@ class TestVM2VMVirtioPmdDsa(TestCase): packed=False, server_mode=True, restart_vm1=False, - vm_config="vhost_sample", ): """ start two VM, each VM has one virtio device @@ -111,7 +107,7 @@ class TestVM2VMVirtioPmdDsa(TestCase): for i in range(self.vm_num): if restart_vm1: i = i + 1 - vm_info = VM(self.dut, "vm%d" % i, vm_config) + vm_info = VM(self.dut, "vm%d" % i, "vhost_sample") vm_params["driver"] = "vhost-user" if not server_mode: vm_params["opt_path"] = self.base_dir + "/vhost-net%d" % i @@ -210,6 +206,7 @@ class TestVM2VMVirtioPmdDsa(TestCase): dut_pmd.execute_cmd("start") def get_and_verify_func_name_of_perf_top(self, func_name_list): + time.sleep(10) self.dut.send_expect("rm -fr perf_top.log", "# ", 120) self.dut.send_expect("perf top > perf_top.log", "", 120) time.sleep(30) @@ -229,8 +226,8 @@ class TestVM2VMVirtioPmdDsa(TestCase): Test Case 1: VM2VM virtio-pmd split ring mergeable path dynamic queue size with dsa dpdk driver and server mode """ self.check_path = ["virtio_dev_rx_async", "virtio_dev_tx_async"] - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) dmas = ( "txq0@%s-q0;" @@ -241,18 +238,9 @@ class TestVM2VMVirtioPmdDsa(TestCase): "rxq1@%s-q1;" "rxq2@%s-q2;" "rxq3@%s-q3" - % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - ) + % (dsas[0], dsas[0], dsas[0], dsas[0], dsas[0], dsas[0], dsas[0], dsas[0]) ) - port_options = {self.use_dsa_list[0]: "max_queues=4"} + port_options = {dsas[0]: "max_queues=4"} vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,client=1,queues=8,dmas=[%s]' " "--vdev 'eth_vhost1,iface=vhost-net1,client=1,queues=8,dmas=[%s]'" @@ -263,7 +251,7 @@ class TestVM2VMVirtioPmdDsa(TestCase): cores=self.vhost_core_list, eal_param=vhost_eal_param, param=vhost_param, - ports=self.use_dsa_list, + ports=dsas, port_options=port_options, ) self.start_vms(vm_queue=8, mergeable=True, packed=False, server_mode=True) @@ -293,8 +281,8 @@ class TestVM2VMVirtioPmdDsa(TestCase): Test Case 2: VM2VM virtio-pmd split ring non-mergeable path dynamic queue size with dsa dpdk driver and server mode """ self.check_path = ["virtio_dev_rx_async", "virtio_dev_tx_async"] - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) dmas = ( "txq0@%s-q0;" @@ -305,18 +293,9 @@ class TestVM2VMVirtioPmdDsa(TestCase): "rxq1@%s-q2;" "rxq2@%s-q3;" "rxq3@%s-q3" - % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - ) + % (dsas[0], dsas[0], dsas[0], dsas[0], dsas[0], dsas[0], dsas[0], dsas[0]) ) - port_options = {self.use_dsa_list[0]: "max_queues=4"} + port_options = {dsas[0]: "max_queues=4"} vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,client=1,queues=8,dmas=[%s]' " "--vdev 'eth_vhost1,iface=vhost-net1,client=1,queues=8,dmas=[%s]'" @@ -327,7 +306,7 @@ class TestVM2VMVirtioPmdDsa(TestCase): cores=self.vhost_core_list, eal_param=vhost_eal_param, param=vhost_param, - ports=self.use_dsa_list, + ports=dsas, port_options=port_options, ) self.start_vms(vm_queue=8, mergeable=False, packed=False, server_mode=True) @@ -359,8 +338,8 @@ class TestVM2VMVirtioPmdDsa(TestCase): Test Case 3: VM2VM virtio-pmd packed ring mergeable path dynamic queue size with dsa dpdk driver and server mode """ self.check_path = ["virtio_dev_rx_async", "virtio_dev_tx_async"] - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) dmas = ( "txq0@%s-q0;" @@ -371,18 +350,9 @@ class TestVM2VMVirtioPmdDsa(TestCase): "rxq1@%s-q1;" "rxq2@%s-q2;" "rxq3@%s-q3" - % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - ) + % (dsas[0], dsas[0], dsas[0], dsas[0], dsas[0], dsas[0], dsas[0], dsas[0]) ) - port_options = {self.use_dsa_list[0]: "max_queues=4"} + port_options = {dsas[0]: "max_queues=4"} vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,client=1,queues=8,dmas=[%s]' " "--vdev 'eth_vhost1,iface=vhost-net1,client=1,queues=8,dmas=[%s]'" @@ -393,7 +363,7 @@ class TestVM2VMVirtioPmdDsa(TestCase): cores=self.vhost_core_list, eal_param=vhost_eal_param, param=vhost_param, - ports=self.use_dsa_list, + ports=dsas, port_options=port_options, ) self.start_vms(vm_queue=8, mergeable=True, packed=True, server_mode=True) @@ -442,8 +412,8 @@ class TestVM2VMVirtioPmdDsa(TestCase): Test Case 4: VM2VM virtio-pmd packed ring non-mergeable path dynamic queue size with dsa dpdk driver and server mode """ self.check_path = ["virtio_dev_rx_async", "virtio_dev_tx_async"] - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, driver_name="vfio-pci", socket=self.ports_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", socket=self.ports_socket ) dmas = ( "txq0@%s-q0;" @@ -454,18 +424,9 @@ class TestVM2VMVirtioPmdDsa(TestCase): "rxq1@%s-q1;" "rxq2@%s-q2;" "rxq3@%s-q3" - % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - ) + % (dsas[0], dsas[0], dsas[0], dsas[0], dsas[0], dsas[0], dsas[0], dsas[0]) ) - port_options = {self.use_dsa_list[0]: "max_queues=4"} + port_options = {dsas[0]: "max_queues=4"} vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,client=1,queues=8,dmas=[%s]' " "--vdev 'eth_vhost1,iface=vhost-net1,client=1,queues=8,dmas=[%s]'" @@ -476,7 +437,7 @@ class TestVM2VMVirtioPmdDsa(TestCase): cores=self.vhost_core_list, eal_param=vhost_eal_param, param=vhost_param, - ports=self.use_dsa_list, + ports=dsas, port_options=port_options, ) self.start_vms(vm_queue=8, mergeable=False, packed=True, server_mode=True) @@ -508,28 +469,27 @@ class TestVM2VMVirtioPmdDsa(TestCase): Test Case 5: VM2VM virtio-pmd split ring mergeable path dynamic queue size with dsa kernel driver and server mode """ self.check_path = ["virtio_dev_rx_async", "virtio_dev_tx_async"] - self.DC.create_work_queue(work_queue_number=8, dsa_index=0) - self.DC.create_work_queue(work_queue_number=8, dsa_index=1) + wqs = self.DC.create_wq(wq_num=8, dsa_idxs=[0, 1]) dmas1 = ( - "txq0@wq0.0;" - "txq1@wq0.0;" - "txq2@wq0.0;" - "txq3@wq0.0;" - "rxq0@wq0.1;" - "rxq1@wq0.1;" - "rxq2@wq0.1;" - "rxq3@wq0.1" + "txq0@%s;" + "txq1@%s;" + "txq2@%s;" + "txq3@%s;" + "rxq0@%s;" + "rxq1@%s;" + "rxq2@%s;" + "rxq3@%s" % (wqs[0], wqs[0], wqs[0], wqs[0], wqs[1], wqs[1], wqs[1], wqs[1]) ) dmas2 = ( - "txq0@wq0.1;" - "txq1@wq0.1;" - "txq2@wq0.1;" - "txq3@wq0.1;" - "rxq0@wq0.0;" - "rxq1@wq0.0;" - "rxq2@wq0.0;" - "rxq3@wq0.0" + "txq0@%s;" + "txq1@%s;" + "txq2@%s;" + "txq3@%s;" + "rxq0@%s;" + "rxq1@%s;" + "rxq2@%s;" + "rxq3@%s" % (wqs[1], wqs[1], wqs[1], wqs[1], wqs[0], wqs[0], wqs[0], wqs[0]) ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,client=1,queues=8,dmas=[%s]' " @@ -572,21 +532,34 @@ class TestVM2VMVirtioPmdDsa(TestCase): Test Case 6: VM2VM virtio-pmd split ring non-mergeable path dynamic queue size with dsa kernel driver and server mode """ self.check_path = ["virtio_dev_rx_async", "virtio_dev_tx_async"] - self.DC.create_work_queue(work_queue_number=8, dsa_index=0) - self.DC.create_work_queue(work_queue_number=8, dsa_index=1) + wqs = self.DC.create_wq(wq_num=8, dsa_idxs=[0, 1]) dmas = ( - "txq0@wq0.0;" - "txq1@wq0.0;" - "txq2@wq0.0;" - "txq3@wq0.0;" - "txq4@wq0.1;" - "txq5@wq0.1;" - "rxq2@wq1.0;" - "rxq3@wq1.0;" - "rxq4@wq1.1;" - "rxq5@wq1.1;" - "rxq6@wq1.1;" - "rxq7@wq1.1" + "txq0@%s;" + "txq1@%s;" + "txq2@%s;" + "txq3@%s;" + "txq4@%s;" + "txq5@%s;" + "rxq2@%s;" + "rxq3@%s;" + "rxq4@%s;" + "rxq5@%s;" + "rxq6@%s;" + "rxq7@%s" + % ( + wqs[0], + wqs[0], + wqs[0], + wqs[0], + wqs[1], + wqs[1], + wqs[8], + wqs[8], + wqs[9], + wqs[9], + wqs[9], + wqs[9], + ) ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,client=1,queues=8,dmas=[%s]' " @@ -629,17 +602,16 @@ class TestVM2VMVirtioPmdDsa(TestCase): Test Case 7: VM2VM virtio-pmd packed ring mergeable path dynamic queue size with dsa kernel driver and server mode """ self.check_path = ["virtio_dev_rx_async", "virtio_dev_tx_async"] - self.DC.create_work_queue(work_queue_number=8, dsa_index=0) - self.DC.create_work_queue(work_queue_number=8, dsa_index=1) + wqs = self.DC.create_wq(wq_num=8, dsa_idxs=[0, 1]) dmas = ( - "txq0@wq0.0;" - "txq1@wq0.1;" - "txq2@wq0.2;" - "txq3@wq0.3;" - "rxq0@wq0.0;" - "rxq1@wq0.1;" - "rxq2@wq0.2;" - "rxq3@wq0.3" + "txq0@%s;" + "txq1@%s;" + "txq2@%s;" + "txq3@%s;" + "rxq0@%s;" + "rxq1@%s;" + "rxq2@%s;" + "rxq3@%s" % (wqs[0], wqs[1], wqs[2], wqs[3], wqs[0], wqs[1], wqs[2], wqs[3]) ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,client=1,queues=8,dmas=[%s]' " @@ -699,36 +671,63 @@ class TestVM2VMVirtioPmdDsa(TestCase): Test Case 8: VM2VM virtio-pmd packed ring non-mergeable path dynamic queue size with dsa kernel driver and server mode """ self.check_path = ["virtio_dev_rx_async", "virtio_dev_tx_async"] - self.DC.create_work_queue(work_queue_number=8, dsa_index=0) - self.DC.create_work_queue(work_queue_number=8, dsa_index=1) + wqs = self.DC.create_wq(wq_num=8, dsa_idxs=[0, 1]) dmas1 = ( - "txq0@wq0.0;" - "txq1@wq0.0;" - "txq2@wq0.0;" - "txq3@wq0.0;" - "txq4@wq0.1;" - "txq5@wq0.1;" - "rxq2@wq1.0;" - "rxq3@wq1.0;" - "rxq4@wq1.1;" - "rxq5@wq1.1;" - "rxq6@wq1.1;" - "rxq7@wq1.1" + "txq0@%s;" + "txq1@%s;" + "txq2@%s;" + "txq3@%s;" + "txq4@%s;" + "txq5@%s;" + "rxq2@%s;" + "rxq3@%s;" + "rxq4@%s;" + "rxq5@%s;" + "rxq6@%s;" + "rxq7@%s" + % ( + wqs[0], + wqs[0], + wqs[0], + wqs[0], + wqs[1], + wqs[1], + wqs[8], + wqs[8], + wqs[9], + wqs[9], + wqs[9], + wqs[9], + ) ) dmas2 = ( - "txq0@wq0.2;" - "txq1@wq0.2;" - "txq2@wq0.2;" - "txq3@wq0.2;" - "txq4@wq0.3;" - "txq5@wq0.3;" - "rxq2@wq1.2;" - "rxq3@wq1.2;" - "rxq4@wq1.3;" - "rxq5@wq1.3;" - "rxq6@wq1.3;" - "rxq7@wq1.3" + "txq0@%s;" + "txq1@%s;" + "txq2@%s;" + "txq3@%s;" + "txq4@%s;" + "txq5@%s;" + "rxq2@%s;" + "rxq3@%s;" + "rxq4@%s;" + "rxq5@%s;" + "rxq6@%s;" + "rxq7@%s" + % ( + wqs[2], + wqs[2], + wqs[2], + wqs[2], + wqs[3], + wqs[3], + wqs[10], + wqs[10], + wqs[11], + wqs[11], + wqs[11], + wqs[11], + ) ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,client=1,queues=8,dmas=[%s]' " @@ -773,8 +772,6 @@ class TestVM2VMVirtioPmdDsa(TestCase): self.stop_all_apps() self.dut.kill_all() self.dut.send_expect("killall -s INT %s" % self.testpmd_name, "#") - self.DC.reset_all_work_queue() - self.DC.bind_all_dsa_to_kernel() def tear_down_all(self): self.dut.close_session(self.vhost_user) diff --git a/tests/TestSuite_vm2vm_virtio_user_dsa.py b/tests/TestSuite_vm2vm_virtio_user_dsa.py index 7e359f3b..bd841e02 100644 --- a/tests/TestSuite_vm2vm_virtio_user_dsa.py +++ b/tests/TestSuite_vm2vm_virtio_user_dsa.py @@ -46,10 +46,6 @@ class TestVM2VMVirtioUserDsa(TestCase): self.dut.send_expect("rm -rf %s" % self.dump_vhost_pcap, "#") self.dut.send_expect("killall -s INT %s" % self.testpmd_name, "#") self.dut.send_expect("killall -s INT %s" % self.pdump_name, "#") - self.use_dsa_list = [] - - self.DC.reset_all_work_queue() - self.DC.bind_all_dsa_to_kernel() @property def check_2M_env(self): @@ -279,16 +275,16 @@ class TestVM2VMVirtioUserDsa(TestCase): """ Test Case 1: VM2VM vhost-user/virtio-user split ring non-mergeable path and multi-queues payload check with dsa dpdk driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=2, driver_name="vfio-pci", socket=self.port_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=2, driver_name="vfio-pci", socket=self.port_socket ) dmas1 = "txq0@%s-q0;rxq1@%s-q0" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], ) dmas2 = "txq0@%s-q1;rxq1@%s-q1" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=2,client=1,dmas=[%s]' " @@ -296,14 +292,14 @@ class TestVM2VMVirtioUserDsa(TestCase): % (dmas1, dmas2) ) vhost_param = "--nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096 --no-flush-rx" - port_options = {self.use_dsa_list[0]: "max_queues=2"} + port_options = {dsas[0]: "max_queues=2"} self.start_vhost_testpmd( cores=self.vhost_core_list, eal_param=vhost_eal_param, param=vhost_param, no_pci=False, port_options=port_options, - ports=self.use_dsa_list[0:1], + ports=dsas[0:1], iova_mode="va", ) virtio1_eal_param = "--vdev=net_virtio_user1,mac=00:01:02:03:04:05,path=./vhost-net1,queues=2,server=1,mrg_rxbuf=0,in_order=0,queue_size=4096" @@ -329,16 +325,16 @@ class TestVM2VMVirtioUserDsa(TestCase): self.vhost_user_pmd.execute_cmd("quit", "#", 60) self.clear_virtio_user1_stats() dmas1 = "txq0@%s-q1;txq1@%s-q1;rxq0@%s-q1;rxq1@%s-q1" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) dmas2 = "txq0@%s-q1;txq1@%s-q1;rxq1@%s-q1;rxq1@%s-q1" % ( - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], + dsas[1], + dsas[1], + dsas[1], + dsas[1], ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=2,client=1,dmas=[%s]' " @@ -346,8 +342,8 @@ class TestVM2VMVirtioUserDsa(TestCase): % (dmas1, dmas2) ) port_options = { - self.use_dsa_list[0]: "max_queues=4", - self.use_dsa_list[1]: "max_queues=4", + dsas[0]: "max_queues=4", + dsas[1]: "max_queues=4", } self.start_vhost_testpmd( cores=self.vhost_core_list, @@ -355,7 +351,7 @@ class TestVM2VMVirtioUserDsa(TestCase): param=vhost_param, no_pci=False, port_options=port_options, - ports=self.use_dsa_list, + ports=dsas, iova_mode="va", ) self.start_pdump_to_capture_pkt() @@ -370,16 +366,16 @@ class TestVM2VMVirtioUserDsa(TestCase): """ Test Case 2: VM2VM split ring inorder non-mergeable path and multi-queues payload check with dsa dpdk driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=2, driver_name="vfio-pci", socket=self.port_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=2, driver_name="vfio-pci", socket=self.port_socket ) dmas1 = "txq0@%s-q0;rxq1@%s-q1" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], ) dmas2 = "txq0@%s-q2;rxq1@%s-q3" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=2,client=1,dmas=[%s]' " @@ -387,14 +383,14 @@ class TestVM2VMVirtioUserDsa(TestCase): % (dmas1, dmas2) ) vhost_param = "--nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096 --no-flush-rx" - port_options = {self.use_dsa_list[0]: "max_queues=4"} + port_options = {dsas[0]: "max_queues=4"} self.start_vhost_testpmd( cores=self.vhost_core_list, eal_param=vhost_eal_param, param=vhost_param, no_pci=False, port_options=port_options, - ports=self.use_dsa_list[0:1], + ports=dsas[0:1], iova_mode="va", ) virtio1_eal_param = "--vdev=net_virtio_user1,mac=00:01:02:03:04:05,path=./vhost-net1,queues=2,server=1,mrg_rxbuf=0,in_order=1,queue_size=4096" @@ -420,16 +416,16 @@ class TestVM2VMVirtioUserDsa(TestCase): self.vhost_user_pmd.execute_cmd("quit", "#", 60) self.clear_virtio_user1_stats() dmas1 = "txq0@%s-q1;txq1@%s-q1;rxq0@%s-q1;rxq1@%s-q1" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) dmas2 = "txq0@%s-q1;txq1@%s-q1;rxq1@%s-q1;rxq1@%s-q1" % ( - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], + dsas[1], + dsas[1], + dsas[1], + dsas[1], ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=2,client=1,dmas=[%s]' " @@ -437,8 +433,8 @@ class TestVM2VMVirtioUserDsa(TestCase): % (dmas1, dmas2) ) port_options = { - self.use_dsa_list[0]: "max_queues=2", - self.use_dsa_list[1]: "max_queues=2", + dsas[0]: "max_queues=2", + dsas[1]: "max_queues=2", } self.start_vhost_testpmd( cores=self.vhost_core_list, @@ -446,7 +442,7 @@ class TestVM2VMVirtioUserDsa(TestCase): param=vhost_param, no_pci=False, port_options=port_options, - ports=self.use_dsa_list, + ports=dsas, iova_mode="va", ) self.start_pdump_to_capture_pkt() @@ -461,16 +457,16 @@ class TestVM2VMVirtioUserDsa(TestCase): """ Test Case 3: VM2VM split ring inorder mergeable path and multi-queues test non-indirect descriptor and payload check with dsa dpdk driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=2, driver_name="vfio-pci", socket=self.port_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=2, driver_name="vfio-pci", socket=self.port_socket ) dmas1 = "txq0@%s-q0;rxq1@%s-q1" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], ) dmas2 = "txq0@%s-q0;rxq1@%s-q1" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=2,client=1,dmas=[%s]' " @@ -479,14 +475,14 @@ class TestVM2VMVirtioUserDsa(TestCase): ) vhost_param = "--nb-cores=1 --rxq=2 --txq=2 --txd=256 --rxd=256 --no-flush-rx" - port_options = {self.use_dsa_list[0]: "max_queues=2"} + port_options = {dsas[0]: "max_queues=2"} self.start_vhost_testpmd( cores=self.vhost_core_list, eal_param=vhost_eal_param, param=vhost_param, no_pci=False, port_options=port_options, - ports=self.use_dsa_list[0:1], + ports=dsas[0:1], iova_mode="va", ) @@ -514,16 +510,16 @@ class TestVM2VMVirtioUserDsa(TestCase): self.virtio_user1_pmd.execute_cmd("quit", "#", 60) self.vhost_user_pmd.execute_cmd("quit", "#", 60) dmas1 = "txq0@%s-q0;txq1@%s-q1;rxq0@%s-q2;rxq1@%s-q3" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) dmas2 = "txq0@%s-q0;txq1@%s-q1;rxq1@%s-q2;rxq1@%s-q3" % ( - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], + dsas[1], + dsas[1], + dsas[1], + dsas[1], ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=2,client=1,dmas=[%s]' " @@ -531,8 +527,8 @@ class TestVM2VMVirtioUserDsa(TestCase): % (dmas1, dmas2) ) port_options = { - self.use_dsa_list[0]: "max_queues=4", - self.use_dsa_list[1]: "max_queues=4", + dsas[0]: "max_queues=4", + dsas[1]: "max_queues=4", } self.start_vhost_testpmd( cores=self.vhost_core_list, @@ -540,7 +536,7 @@ class TestVM2VMVirtioUserDsa(TestCase): param=vhost_param, no_pci=False, port_options=port_options, - ports=self.use_dsa_list, + ports=dsas, iova_mode="va", ) self.start_virtio_testpmd_with_vhost_net1( @@ -565,16 +561,16 @@ class TestVM2VMVirtioUserDsa(TestCase): """ Test Case 4: VM2VM split ring mergeable path and multi-queues test indirect descriptor and payload check with dsa dpdk driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=2, driver_name="vfio-pci", socket=self.port_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=2, driver_name="vfio-pci", socket=self.port_socket ) dmas1 = "txq0@%s-q0;rxq1@%s-q0" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], ) dmas2 = "txq0@%s-q0;rxq1@%s-q0" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=2,client=1,dmas=[%s]' " @@ -582,14 +578,14 @@ class TestVM2VMVirtioUserDsa(TestCase): % (dmas1, dmas2) ) vhost_param = "--nb-cores=1 --rxq=2 --txq=2 --txd=256 --rxd=256 --no-flush-rx" - port_options = {self.use_dsa_list[0]: "max_queues=1"} + port_options = {dsas[0]: "max_queues=1"} self.start_vhost_testpmd( cores=self.vhost_core_list, eal_param=vhost_eal_param, param=vhost_param, no_pci=False, port_options=port_options, - ports=self.use_dsa_list[0:1], + ports=dsas[0:1], iova_mode="va", ) virtio1_eal_param = "--vdev=net_virtio_user1,mac=00:01:02:03:04:05,path=./vhost-net1,queues=2,server=1,mrg_rxbuf=1,in_order=0,queue_size=256" @@ -616,16 +612,16 @@ class TestVM2VMVirtioUserDsa(TestCase): self.virtio_user1_pmd.execute_cmd("quit", "#", 60) self.vhost_user_pmd.execute_cmd("quit", "#", 60) dmas1 = "txq0@%s-q0;txq1@%s-q1;rxq0@%s-q2;rxq1@%s-q3" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) dmas2 = "txq0@%s-q0;txq1@%s-q1;rxq1@%s-q2;rxq1@%s-q3" % ( - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], + dsas[1], + dsas[1], + dsas[1], + dsas[1], ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=2,client=1,dmas=[%s]' " @@ -633,8 +629,8 @@ class TestVM2VMVirtioUserDsa(TestCase): % (dmas1, dmas2) ) port_options = { - self.use_dsa_list[0]: "max_queues=4", - self.use_dsa_list[1]: "max_queues=4", + dsas[0]: "max_queues=4", + dsas[1]: "max_queues=4", } self.start_vhost_testpmd( cores=self.vhost_core_list, @@ -642,7 +638,7 @@ class TestVM2VMVirtioUserDsa(TestCase): param=vhost_param, no_pci=False, port_options=port_options, - ports=self.use_dsa_list, + ports=dsas, iova_mode="va", ) self.start_virtio_testpmd_with_vhost_net1( @@ -667,18 +663,18 @@ class TestVM2VMVirtioUserDsa(TestCase): """ Test Case 5: VM2VM split ring vectorized path and multi-queues payload check with vhost async operation and dsa dpdk driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=2, driver_name="vfio-pci", socket=self.port_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=2, driver_name="vfio-pci", socket=self.port_socket ) dmas1 = "txq0@%s-q0;rxq0@%s-q0;rxq1@%s-q0" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], ) dmas2 = "txq0@%s-q1;rxq0@%s-q1;rxq1@%s-q0" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=2,client=1,dmas=[%s]' " @@ -692,7 +688,7 @@ class TestVM2VMVirtioUserDsa(TestCase): eal_param=vhost_eal_param, param=vhost_param, no_pci=False, - ports=self.use_dsa_list, + ports=dsas, iova_mode="va", ) @@ -722,16 +718,16 @@ class TestVM2VMVirtioUserDsa(TestCase): self.vhost_user_pmd.execute_cmd("quit", "#", 60) self.clear_virtio_user1_stats() dmas1 = "txq0@%s-q3;txq1@%s-q3;rxq0@%s-q1;rxq1@%s-q1" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[1], - self.use_dsa_list[1], + dsas[0], + dsas[0], + dsas[1], + dsas[1], ) dmas2 = "txq0@%s-q1;txq1@%s-q1;rxq1@%s-q3;rxq1@%s-q3" % ( - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[1], + dsas[1], + dsas[0], + dsas[0], ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=2,client=1,dmas=[%s]' " @@ -739,8 +735,8 @@ class TestVM2VMVirtioUserDsa(TestCase): % (dmas1, dmas2) ) port_options = { - self.use_dsa_list[0]: "max_queues=4", - self.use_dsa_list[1]: "max_queues=4", + dsas[0]: "max_queues=4", + dsas[1]: "max_queues=4", } self.start_vhost_testpmd( cores=self.vhost_core_list, @@ -748,7 +744,7 @@ class TestVM2VMVirtioUserDsa(TestCase): param=vhost_param, no_pci=False, port_options=port_options, - ports=self.use_dsa_list, + ports=dsas, iova_mode="va", ) self.start_pdump_to_capture_pkt() @@ -763,16 +759,16 @@ class TestVM2VMVirtioUserDsa(TestCase): """ Test Case 6: VM2VM packed ring non-mergeable path and multi-queues payload check with dsa dpdk driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=2, driver_name="vfio-pci", socket=self.port_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=2, driver_name="vfio-pci", socket=self.port_socket ) dmas1 = "txq0@%s-q1;rxq1@%s-q1" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], ) dmas2 = "txq0@%s-q1;rxq1@%s-q1" % ( - self.use_dsa_list[1], - self.use_dsa_list[1], + dsas[1], + dsas[1], ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=2,client=1,dmas=[%s]' " @@ -786,7 +782,7 @@ class TestVM2VMVirtioUserDsa(TestCase): eal_param=vhost_eal_param, param=vhost_param, no_pci=False, - ports=self.use_dsa_list, + ports=dsas, iova_mode="va", ) @@ -816,16 +812,16 @@ class TestVM2VMVirtioUserDsa(TestCase): self.vhost_user_pmd.execute_cmd("quit", "#", 60) self.clear_virtio_user1_stats() dmas1 = "txq0@%s-q0;txq1@%s-q1;rxq0@%s-q0;rxq1@%s-q1" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) dmas2 = "txq0@%s-q0;txq1@%s-q1;rxq1@%s-q0;rxq1@%s-q1" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=2,client=1,dmas=[%s]' " @@ -833,8 +829,8 @@ class TestVM2VMVirtioUserDsa(TestCase): % (dmas1, dmas2) ) port_options = { - self.use_dsa_list[0]: "max_queues=4", - self.use_dsa_list[1]: "max_queues=4", + dsas[0]: "max_queues=4", + dsas[1]: "max_queues=4", } self.start_vhost_testpmd( cores=self.vhost_core_list, @@ -842,7 +838,7 @@ class TestVM2VMVirtioUserDsa(TestCase): param=vhost_param, no_pci=False, port_options=port_options, - ports=self.use_dsa_list[0:1], + ports=dsas[0:1], iova_mode="va", ) self.start_pdump_to_capture_pkt() @@ -857,16 +853,16 @@ class TestVM2VMVirtioUserDsa(TestCase): """ Test Case 7: VM2VM packed ring inorder non-mergeable path and multi-queues payload check with dsa dpdk driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=2, driver_name="vfio-pci", socket=self.port_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=2, driver_name="vfio-pci", socket=self.port_socket ) dmas1 = "txq0@%s-q0;rxq1@%s-q1" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], ) dmas2 = "txq0@%s-q0;rxq1@%s-q1" % ( - self.use_dsa_list[1], - self.use_dsa_list[1], + dsas[1], + dsas[1], ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=2,client=1,dmas=[%s]' " @@ -876,8 +872,8 @@ class TestVM2VMVirtioUserDsa(TestCase): vhost_param = "--nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096 --no-flush-rx" port_options = { - self.use_dsa_list[0]: "max_queues=2", - self.use_dsa_list[1]: "max_queues=2", + dsas[0]: "max_queues=2", + dsas[1]: "max_queues=2", } self.start_vhost_testpmd( cores=self.vhost_core_list, @@ -885,7 +881,7 @@ class TestVM2VMVirtioUserDsa(TestCase): param=vhost_param, no_pci=False, port_options=port_options, - ports=self.use_dsa_list, + ports=dsas, iova_mode="va", ) @@ -915,16 +911,16 @@ class TestVM2VMVirtioUserDsa(TestCase): self.vhost_user_pmd.execute_cmd("quit", "#", 60) self.clear_virtio_user1_stats() dmas1 = "txq0@%s-q5;txq1@%s-q6;rxq0@%s-q5;rxq1@%s-q6" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) dmas2 = "txq0@%s-q5;txq1@%s-q6;rxq1@%s-q5;rxq1@%s-q6" % ( - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], + dsas[1], + dsas[1], + dsas[1], + dsas[1], ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=2,client=1,dmas=[%s]' " @@ -936,7 +932,7 @@ class TestVM2VMVirtioUserDsa(TestCase): eal_param=vhost_eal_param, param=vhost_param, no_pci=False, - ports=self.use_dsa_list, + ports=dsas, iova_mode="va", ) self.start_pdump_to_capture_pkt() @@ -951,16 +947,16 @@ class TestVM2VMVirtioUserDsa(TestCase): """ Test Case 8: VM2VM packed ring mergeable path and multi-queues payload check with dsa dpdk driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=2, driver_name="vfio-pci", socket=self.port_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=2, driver_name="vfio-pci", socket=self.port_socket ) dmas1 = "txq0@%s-q0;rxq1@%s-q0" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], ) dmas2 = "txq0@%s-q0;rxq1@%s-q0" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=2,client=1,dmas=[%s]' " @@ -969,14 +965,14 @@ class TestVM2VMVirtioUserDsa(TestCase): ) vhost_param = "--nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096 --no-flush-rx" - port_options = {self.use_dsa_list[0]: "max_queues=1"} + port_options = {dsas[0]: "max_queues=1"} self.start_vhost_testpmd( cores=self.vhost_core_list, eal_param=vhost_eal_param, param=vhost_param, no_pci=False, port_options=port_options, - ports=self.use_dsa_list[0:1], + ports=dsas[0:1], iova_mode="va", ) @@ -1006,16 +1002,16 @@ class TestVM2VMVirtioUserDsa(TestCase): self.vhost_user_pmd.execute_cmd("quit", "#", 60) self.clear_virtio_user1_stats() dmas1 = "txq0@%s-q0;txq1@%s-q1;rxq0@%s-q2;rxq1@%s-q3" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) dmas2 = "txq0@%s-q4;txq1@%s-q5;rxq1@%s-q6;rxq1@%s-q7" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=2,client=1,dmas=[%s]' " @@ -1027,7 +1023,7 @@ class TestVM2VMVirtioUserDsa(TestCase): eal_param=vhost_eal_param, param=vhost_param, no_pci=False, - ports=self.use_dsa_list[0:1], + ports=dsas[0:1], iova_mode="va", ) self.start_pdump_to_capture_pkt() @@ -1042,18 +1038,18 @@ class TestVM2VMVirtioUserDsa(TestCase): """ Test Case 9: VM2VM packed ring inorder mergeable path and multi-queues payload check with dsa dpdk driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=2, driver_name="vfio-pci", socket=self.port_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=2, driver_name="vfio-pci", socket=self.port_socket ) dmas1 = "txq0@%s-q0;rxq0@%s-q0;rxq1@%s-q0" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], ) dmas2 = "txq0@%s-q0;txq1@%s-q0;rxq1@%s-q0" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=2,client=1,dmas=[%s]' " @@ -1067,7 +1063,7 @@ class TestVM2VMVirtioUserDsa(TestCase): eal_param=vhost_eal_param, param=vhost_param, no_pci=False, - ports=self.use_dsa_list, + ports=dsas, iova_mode="va", ) @@ -1097,16 +1093,16 @@ class TestVM2VMVirtioUserDsa(TestCase): self.vhost_user_pmd.execute_cmd("quit", "#", 60) self.clear_virtio_user1_stats() dmas1 = "txq0@%s-q0;txq1@%s-q1;rxq0@%s-q0;rxq1@%s-q1" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) dmas2 = "txq0@%s-q0;txq1@%s-q1;rxq1@%s-q0;rxq1@%s-q1" % ( - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], - self.use_dsa_list[1], + dsas[1], + dsas[1], + dsas[1], + dsas[1], ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=2,client=1,dmas=[%s]' " @@ -1118,7 +1114,7 @@ class TestVM2VMVirtioUserDsa(TestCase): eal_param=vhost_eal_param, param=vhost_param, no_pci=False, - ports=self.use_dsa_list, + ports=dsas, iova_mode="va", ) self.start_pdump_to_capture_pkt() @@ -1133,20 +1129,20 @@ class TestVM2VMVirtioUserDsa(TestCase): """ Test Case 10: VM2VM packed ring vectorized-tx path and multi-queues test indirect descriptor and payload check with dsa dpdk driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=2, driver_name="vfio-pci", socket=self.port_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=2, driver_name="vfio-pci", socket=self.port_socket ) dmas1 = "txq0@%s-q0;txq1@%s-q0;rxq0@%s-q0;rxq1@%s-q0" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) dmas2 = "txq0@%s-q1;txq1@%s-q1;rxq0@%s-q1;rxq1@%s-q1" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=2,client=1,dmas=[%s]' " @@ -1155,13 +1151,13 @@ class TestVM2VMVirtioUserDsa(TestCase): ) vhost_param = "--nb-cores=1 --rxq=2 --txq=2 --txd=256 --rxd=256 --no-flush-rx" - port_options = {self.use_dsa_list[0]: "max_queues=2"} + port_options = {dsas[0]: "max_queues=2"} self.start_vhost_testpmd( cores=self.vhost_core_list, eal_param=vhost_eal_param, param=vhost_param, no_pci=False, - ports=self.use_dsa_list[0:1], + ports=dsas[0:1], port_options=port_options, iova_mode="va", ) @@ -1193,14 +1189,14 @@ class TestVM2VMVirtioUserDsa(TestCase): self.virtio_user1_pmd.execute_cmd("quit", "#", 60) self.vhost_user_pmd.execute_cmd("quit", "#", 60) dmas1 = "txq0@%s-q0;txq1@%s-q1;rxq0@%s-q2;rxq1@%s-q3" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) dmas2 = "txq0@%s-q0;txq1@%s-q1" % ( - self.use_dsa_list[1], - self.use_dsa_list[1], + dsas[1], + dsas[1], ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=2,client=1,dmas=[%s]' " @@ -1208,15 +1204,15 @@ class TestVM2VMVirtioUserDsa(TestCase): % (dmas1, dmas2) ) port_options = { - self.use_dsa_list[0]: "max_queues=4", - self.use_dsa_list[1]: "max_queues=2", + dsas[0]: "max_queues=4", + dsas[1]: "max_queues=2", } self.start_vhost_testpmd( cores=self.vhost_core_list, eal_param=vhost_eal_param, param=vhost_param, no_pci=False, - ports=self.use_dsa_list, + ports=dsas, port_options=port_options, iova_mode="va", ) @@ -1242,20 +1238,20 @@ class TestVM2VMVirtioUserDsa(TestCase): """ Test Case 11: VM2VM packed ring vectorized path and payload check test with dsa dpdk driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=2, driver_name="vfio-pci", socket=self.port_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=2, driver_name="vfio-pci", socket=self.port_socket ) dmas1 = "txq0@%s-q0;txq1@%s-q0;rxq0@%s-q0;rxq1@%s-q0" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) dmas2 = "txq0@%s-q1;txq1@%s-q1;rxq0@%s-q1;rxq1@%s-q1" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=2,client=1,dmas=[%s]' " @@ -1264,13 +1260,13 @@ class TestVM2VMVirtioUserDsa(TestCase): ) vhost_param = "--nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096 --no-flush-rx" - port_options = {self.use_dsa_list[0]: "max_queues=2"} + port_options = {dsas[0]: "max_queues=2"} self.start_vhost_testpmd( cores=self.vhost_core_list, eal_param=vhost_eal_param, param=vhost_param, no_pci=False, - ports=self.use_dsa_list[0:1], + ports=dsas[0:1], port_options=port_options, iova_mode="va", ) @@ -1304,20 +1300,20 @@ class TestVM2VMVirtioUserDsa(TestCase): """ Test Case 12: VM2VM packed ring vectorized path payload check test with ring size is not power of 2 with dsa dpdk driver """ - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=2, driver_name="vfio-pci", socket=self.port_socket + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=2, driver_name="vfio-pci", socket=self.port_socket ) dmas1 = "txq0@%s-q0;txq1@%s-q0;rxq0@%s-q1;rxq1@%s-q1" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) dmas2 = "txq0@%s-q0;txq1@%s-q0;rxq0@%s-q1;rxq1@%s-q1" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], + dsas[0], ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=2,client=1,dmas=[%s]' " @@ -1326,13 +1322,13 @@ class TestVM2VMVirtioUserDsa(TestCase): ) vhost_param = "--nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096 --no-flush-rx" - port_options = {self.use_dsa_list[0]: "max_queues=2"} + port_options = {dsas[0]: "max_queues=2"} self.start_vhost_testpmd( cores=self.vhost_core_list, eal_param=vhost_eal_param, param=vhost_param, no_pci=False, - ports=self.use_dsa_list[0:1], + ports=dsas[0:1], port_options=port_options, iova_mode="va", ) @@ -1366,10 +1362,13 @@ class TestVM2VMVirtioUserDsa(TestCase): """ Test Case 13: VM2VM split ring non-mergeable path and multi-queues payload check with dsa kernel driver """ - self.DC.create_work_queue(work_queue_number=2, dsa_index=0) + wqs = self.DC.create_wq(wq_num=2, dsa_idxs=[0]) + dmas1 = "txq0@%s;rxq1@%s" % (wqs[0], wqs[0]) + dmas2 = "txq0@%s;rxq1@%s" % (wqs[1], wqs[1]) vhost_eal_param = ( - "--vdev 'eth_vhost0,iface=vhost-net0,queues=2,client=1,dmas=[txq0@wq0.0;rxq1@wq0.0]' " - "--vdev 'eth_vhost1,iface=vhost-net1,queues=2,client=1,dmas=[txq0@wq0.1;rxq1@wq0.1]'" + "--vdev 'eth_vhost0,iface=vhost-net0,queues=2,client=1,dmas=[%s]' " + "--vdev 'eth_vhost1,iface=vhost-net1,queues=2,client=1,dmas=[%s]'" + % (dmas1, dmas2) ) vhost_param = "--nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096 --no-flush-rx" self.start_vhost_testpmd( @@ -1409,10 +1408,13 @@ class TestVM2VMVirtioUserDsa(TestCase): """ Test Case 14: VM2VM split ring inorder non-mergeable path and multi-queues payload check with dsa kernel driver """ - self.DC.create_work_queue(work_queue_number=4, dsa_index=0) + wqs = self.DC.create_wq(wq_num=4, dsa_idxs=[0]) + dmas1 = "txq0@%s;rxq1@%s" % (wqs[0], wqs[1]) + dmas2 = "txq0@%s;rxq1@%s" % (wqs[2], wqs[3]) vhost_eal_param = ( - "--vdev 'eth_vhost0,iface=vhost-net0,queues=2,client=1,dmas=[txq0@wq0.0;rxq1@wq0.1]' " - "--vdev 'eth_vhost1,iface=vhost-net1,queues=2,client=1,dmas=[txq0@wq0.2;rxq1@wq0.3]'" + "--vdev 'eth_vhost0,iface=vhost-net0,queues=2,client=1,dmas=[%s]' " + "--vdev 'eth_vhost1,iface=vhost-net1,queues=2,client=1,dmas=[%s]'" + % (dmas1, dmas2) ) vhost_param = "--nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096 --no-flush-rx" self.start_vhost_testpmd( @@ -1452,10 +1454,13 @@ class TestVM2VMVirtioUserDsa(TestCase): """ Test Case 15: VM2VM split ring inorder mergeable path and multi-queues test non-indirect descriptor and payload check with dsa kernel driver """ - self.DC.create_work_queue(work_queue_number=4, dsa_index=0) + wqs = self.DC.create_wq(wq_num=4, dsa_idxs=[0]) + dmas1 = "txq0@%s;rxq1@%s" % (wqs[0], wqs[1]) + dmas2 = "txq0@%s;rxq1@%s" % (wqs[2], wqs[3]) vhost_eal_param = ( - "--vdev 'eth_vhost0,iface=vhost-net0,queues=2,client=1,dmas=[txq0@wq0.0;rxq1@wq0.1]' " - "--vdev 'eth_vhost1,iface=vhost-net1,queues=2,client=1,dmas=[txq0@wq0.2;rxq1@wq0.3]'" + "--vdev 'eth_vhost0,iface=vhost-net0,queues=2,client=1,dmas=[%s]' " + "--vdev 'eth_vhost1,iface=vhost-net1,queues=2,client=1,dmas=[%s]'" + % (dmas1, dmas2) ) vhost_param = "--nb-cores=1 --rxq=2 --txq=2 --txd=256 --rxd=256 --no-flush-rx" self.start_vhost_testpmd( @@ -1495,10 +1500,13 @@ class TestVM2VMVirtioUserDsa(TestCase): """ Test Case 16: VM2VM split ring mergeable path and multi-queues test indirect descriptor and payload check with dsa kernel driver """ - self.DC.create_work_queue(work_queue_number=2, dsa_index=0) + wqs = self.DC.create_wq(wq_num=2, dsa_idxs=[0]) + dmas1 = "txq0@%s;txq1@%s;rxq0@%s;rxq0@%s" % (wqs[0], wqs[0], wqs[0], wqs[0]) + dmas2 = "txq0@%s;txq1@%s;rxq0@%s;rxq0@%s" % (wqs[1], wqs[1], wqs[1], wqs[1]) vhost_eal_param = ( - "--vdev 'eth_vhost0,iface=vhost-net0,queues=2,client=1,dmas=[txq0@wq0.0;txq1@wq0.0;rxq0@wq0.0;rxq0@wq0.0]' " - "--vdev 'eth_vhost1,iface=vhost-net1,queues=2,client=1,dmas=[txq0@wq0.1;txq1@wq0.1;rxq0@wq0.1;rxq0@wq0.1]'" + "--vdev 'eth_vhost0,iface=vhost-net0,queues=2,client=1,dmas=[%s]' " + "--vdev 'eth_vhost1,iface=vhost-net1,queues=2,client=1,dmas=[%s]'" + % (dmas1, dmas2) ) vhost_param = "--nb-cores=1 --rxq=2 --txq=2 --txd=256 --rxd=256 --no-flush-rx" self.start_vhost_testpmd( @@ -1538,10 +1546,13 @@ class TestVM2VMVirtioUserDsa(TestCase): """ Test Case 17: VM2VM split ring vectorized path and multi-queues payload check with vhost async operation and dsa kernel driver """ - self.DC.create_work_queue(work_queue_number=4, dsa_index=0) + wqs = self.DC.create_wq(wq_num=4, dsa_idxs=[0]) + dmas1 = "txq0@%s;txq1@%s;rxq0@%s;rxq1@%s" % (wqs[0], wqs[0], wqs[0], wqs[0]) + dmas2 = "txq0@%s;txq1@%s;rxq0@%s;rxq1@%s" % (wqs[0], wqs[0], wqs[0], wqs[0]) vhost_eal_param = ( - "--vdev 'eth_vhost0,iface=vhost-net0,queues=2,client=1,dmas=[txq0@wq0.0;txq1@wq0.0;rxq0@wq0.0;rxq1@wq0.0]' " - "--vdev 'eth_vhost1,iface=vhost-net1,queues=2,client=1,dmas=[txq0@wq0.0;txq1@wq0.0;rxq0@wq0.0;rxq1@wq0.0]'" + "--vdev 'eth_vhost0,iface=vhost-net0,queues=2,client=1,dmas=[%s]' " + "--vdev 'eth_vhost1,iface=vhost-net1,queues=2,client=1,dmas=[%s]'" + % (dmas1, dmas2) ) vhost_param = "--nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096 --no-flush-rx" self.start_vhost_testpmd( @@ -1581,10 +1592,13 @@ class TestVM2VMVirtioUserDsa(TestCase): """ Test Case 18: VM2VM packed ring non-mergeable path and multi-queues payload check with dsa kernel driver """ - self.DC.create_work_queue(work_queue_number=2, dsa_index=0) + wqs = self.DC.create_wq(wq_num=2, dsa_idxs=[0]) + dmas1 = "txq0@%s;rxq1@%s" % (wqs[0], wqs[0]) + dmas2 = "txq0@%s;rxq1@%s" % (wqs[1], wqs[1]) vhost_eal_param = ( - "--vdev 'eth_vhost0,iface=vhost-net0,queues=2,client=1,dmas=[txq0@wq0.0;rxq1@wq0.0]' " - "--vdev 'eth_vhost1,iface=vhost-net1,queues=2,client=1,dmas=[txq0@wq0.1;rxq1@wq0.1]'" + "--vdev 'eth_vhost0,iface=vhost-net0,queues=2,client=1,dmas=[%s]' " + "--vdev 'eth_vhost1,iface=vhost-net1,queues=2,client=1,dmas=[%s]'" + % (dmas1, dmas2) ) vhost_param = "--nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096 --no-flush-rx" self.start_vhost_testpmd( @@ -1624,11 +1638,13 @@ class TestVM2VMVirtioUserDsa(TestCase): """ Test Case 19: VM2VM packed ring inorder non-mergeable path and multi-queues payload check with dsa kernel driver """ - self.DC.create_work_queue(work_queue_number=2, dsa_index=0) - self.DC.create_work_queue(work_queue_number=2, dsa_index=1) + wqs = self.DC.create_wq(wq_num=2, dsa_idxs=[0, 1]) + dmas1 = "txq0@%s;rxq1@%s" % (wqs[0], wqs[1]) + dmas2 = "txq0@%s;rxq1@%s" % (wqs[2], wqs[3]) vhost_eal_param = ( - "--vdev 'eth_vhost0,iface=vhost-net0,queues=2,client=1,dmas=[txq0@wq0.0;rxq1@wq0.1]' " - "--vdev 'eth_vhost1,iface=vhost-net1,queues=2,client=1,dmas=[txq0@wq1.0;rxq1@wq1.1]'" + "--vdev 'eth_vhost0,iface=vhost-net0,queues=2,client=1,dmas=[%s]' " + "--vdev 'eth_vhost1,iface=vhost-net1,queues=2,client=1,dmas=[%s]'" + % (dmas1, dmas2) ) vhost_param = "--nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096 --no-flush-rx" self.start_vhost_testpmd( @@ -1668,10 +1684,13 @@ class TestVM2VMVirtioUserDsa(TestCase): """ Test Case 20: VM2VM packed ring mergeable path and multi-queues payload check with dsa kernel driver """ - self.DC.create_work_queue(work_queue_number=2, dsa_index=0) + wqs = self.DC.create_wq(wq_num=2, dsa_idxs=[0]) + dmas1 = "txq0@%s;txq1@%s;rxq0@%s;rxq1@%s" % (wqs[0], wqs[0], wqs[1], wqs[1]) + dmas2 = "txq0@%s;txq1@%s;rxq0@%s;rxq1@%s" % (wqs[1], wqs[1], wqs[0], wqs[0]) vhost_eal_param = ( - "--vdev 'eth_vhost0,iface=vhost-net0,queues=2,client=1,dmas=[txq0@wq0.0;txq1@wq0.0;rxq0@wq0.1;rxq1@wq0.1]' " - "--vdev 'eth_vhost1,iface=vhost-net1,queues=2,client=1,dmas=[txq0@wq0.1;txq1@wq0.1;rxq0@wq0.0;rxq1@wq0.0]'" + "--vdev 'eth_vhost0,iface=vhost-net0,queues=2,client=1,dmas=[%s]' " + "--vdev 'eth_vhost1,iface=vhost-net1,queues=2,client=1,dmas=[%s]'" + % (dmas1, dmas2) ) vhost_param = "--nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096 --no-flush-rx" self.start_vhost_testpmd( @@ -1711,11 +1730,13 @@ class TestVM2VMVirtioUserDsa(TestCase): """ Test Case 21: VM2VM packed ring inorder mergeable path and multi-queues payload check with dsa kernel driver """ - self.DC.create_work_queue(work_queue_number=1, dsa_index=0) - self.DC.create_work_queue(work_queue_number=1, dsa_index=1) + wqs = self.DC.create_wq(wq_num=1, dsa_idxs=[0, 1]) + dmas1 = "txq0@%s;rxq0@%s;rxq1@%s" % (wqs[0], wqs[0], wqs[0]) + dmas2 = "txq0@%s;txq1@%s;rxq1@%s" % (wqs[1], wqs[1], wqs[1]) vhost_eal_param = ( - "--vdev 'eth_vhost0,iface=vhost-net0,queues=2,client=1,dmas=[txq0@wq0.0;rxq0@wq0.0;rxq1@wq0.0]' " - "--vdev 'eth_vhost1,iface=vhost-net1,queues=2,client=1,dmas=[txq0@wq1.0;txq1@wq1.0;rxq1@wq1.0]'" + "--vdev 'eth_vhost0,iface=vhost-net0,queues=2,client=1,dmas=[%s]' " + "--vdev 'eth_vhost1,iface=vhost-net1,queues=2,client=1,dmas=[%s]'" + % (dmas1, dmas2) ) vhost_param = "--nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096 --no-flush-rx" self.start_vhost_testpmd( @@ -1755,11 +1776,13 @@ class TestVM2VMVirtioUserDsa(TestCase): """ Test Case 22: VM2VM packed ring vectorized-tx path and multi-queues test indirect descriptor and payload check with dsa kernel driver """ - self.DC.create_work_queue(work_queue_number=2, dsa_index=0) - self.DC.create_work_queue(work_queue_number=2, dsa_index=1) + wqs = self.DC.create_wq(wq_num=2, dsa_idxs=[0, 1]) + dmas1 = "txq0@%s;txq1@%s;rxq0@%s;rxq1@%s" % (wqs[0], wqs[0], wqs[1], wqs[1]) + dmas2 = "txq0@%s;txq1@%s;rxq0@%s;rxq1@%s" % (wqs[2], wqs[2], wqs[3], wqs[3]) vhost_eal_param = ( - "--vdev 'eth_vhost0,iface=vhost-net0,queues=2,client=1,dmas=[txq0@wq0.0;txq1@wq0.0;rxq0@wq0.1;rxq1@wq0.1]' " - "--vdev 'eth_vhost1,iface=vhost-net1,queues=2,client=1,dmas=[txq0@wq1.0;txq1@wq1.0;rxq0@wq1.1;rxq1@wq1.1]'" + "--vdev 'eth_vhost0,iface=vhost-net0,queues=2,client=1,dmas=[%s]' " + "--vdev 'eth_vhost1,iface=vhost-net1,queues=2,client=1,dmas=[%s]'" + % (dmas1, dmas2) ) vhost_param = "--nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096 --no-flush-rx" self.start_vhost_testpmd( @@ -1799,11 +1822,13 @@ class TestVM2VMVirtioUserDsa(TestCase): """ Test Case 23: VM2VM packed ring vectorized path and multi-queues test indirect descriptor and payload check with dsa kernel driver """ - self.DC.create_work_queue(work_queue_number=2, dsa_index=0) - self.DC.create_work_queue(work_queue_number=2, dsa_index=1) + wqs = self.DC.create_wq(wq_num=2, dsa_idxs=[0, 1]) + dmas1 = "txq0@%s;txq1@%s;rxq0@%s;rxq1@%s" % (wqs[0], wqs[0], wqs[1], wqs[1]) + dmas2 = "txq0@%s;txq1@%s;rxq0@%s;rxq1@%s" % (wqs[2], wqs[2], wqs[3], wqs[3]) vhost_eal_param = ( - "--vdev 'eth_vhost0,iface=vhost-net0,queues=2,client=1,dmas=[txq0@wq0.0;txq1@wq0.0;rxq0@wq0.1;rxq1@wq0.1]' " - "--vdev 'eth_vhost1,iface=vhost-net1,queues=2,client=1,dmas=[txq0@wq1.0;txq1@wq1.0;rxq0@wq1.1;rxq1@wq1.1]'" + "--vdev 'eth_vhost0,iface=vhost-net0,queues=2,client=1,dmas=[%s]' " + "--vdev 'eth_vhost1,iface=vhost-net1,queues=2,client=1,dmas=[%s]'" + % (dmas1, dmas2) ) vhost_param = "--nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096 --no-flush-rx" self.start_vhost_testpmd( @@ -1843,11 +1868,13 @@ class TestVM2VMVirtioUserDsa(TestCase): """ Test Case 24: VM2VM packed ring vectorized path payload check test with ring size is not power of 2 with dsa kernel driver """ - self.DC.create_work_queue(work_queue_number=2, dsa_index=0) - self.DC.create_work_queue(work_queue_number=2, dsa_index=1) + wqs = self.DC.create_wq(wq_num=2, dsa_idxs=[0, 1]) + dmas1 = "txq0@%s;txq1@%s;rxq0@%s;rxq1@%s" % (wqs[0], wqs[0], wqs[1], wqs[1]) + dmas2 = "txq0@%s;txq1@%s;rxq0@%s;rxq1@%s" % (wqs[2], wqs[2], wqs[3], wqs[3]) vhost_eal_param = ( - "--vdev 'eth_vhost0,iface=vhost-net0,queues=2,client=1,dmas=[txq0@wq0.0;txq1@wq0.0;rxq0@wq0.1;rxq1@wq0.1]' " - "--vdev 'eth_vhost1,iface=vhost-net1,queues=2,client=1,dmas=[txq0@wq1.0;txq1@wq1.0;rxq0@wq1.1;rxq1@wq1.1]'" + "--vdev 'eth_vhost0,iface=vhost-net0,queues=2,client=1,dmas=[%s]' " + "--vdev 'eth_vhost1,iface=vhost-net1,queues=2,client=1,dmas=[%s]'" + % (dmas1, dmas2) ) vhost_param = "--nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096 --no-flush-rx" self.start_vhost_testpmd( @@ -1887,18 +1914,18 @@ class TestVM2VMVirtioUserDsa(TestCase): """ Test Case 25: VM2VM split ring mergeable path and multi-queues test indirect descriptor with dsa dpdk and kernel driver """ - self.DC.create_work_queue(work_queue_number=2, dsa_index=0) - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, + wqs = self.DC.create_wq(wq_num=2, dsa_idxs=[0]) + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", - dsa_index_list=[1], + dsa_idxs=[1], socket=self.port_socket, ) - dmas1 = "txq0@wq0.0;rxq0@wq0.0;rxq1@wq0.0" + dmas1 = "txq0@%s;rxq0@%s;rxq1@%s" % (wqs[0], wqs[0], wqs[0]) dmas2 = "txq0@%s-q0;txq1@%s-q0;rxq1@%s-q0" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], - self.use_dsa_list[0], + dsas[0], + dsas[0], + dsas[0], ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=2,client=1,dmas=[%s]' " @@ -1906,13 +1933,13 @@ class TestVM2VMVirtioUserDsa(TestCase): % (dmas1, dmas2) ) vhost_param = "--nb-cores=1 --rxq=2 --txq=2 --txd=256 --rxd=256 --no-flush-rx" - port_options = {self.use_dsa_list[0]: "max_queues=1"} + port_options = {dsas[0]: "max_queues=1"} self.start_vhost_testpmd( cores=self.vhost_core_list, eal_param=vhost_eal_param, param=vhost_param, no_pci=False, - ports=self.use_dsa_list, + ports=dsas, port_options=port_options, iova_mode="va", ) @@ -1946,20 +1973,24 @@ class TestVM2VMVirtioUserDsa(TestCase): """ Test Case 26: VM2VM packed ring inorder mergeable path and multi-queues payload check with dsa dpdk and kernel driver """ - self.DC.create_work_queue(work_queue_number=2, dsa_index=0) - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, + wqs = self.DC.create_wq(wq_num=2, dsa_idxs=[0]) + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", - dsa_index_list=[1], + dsa_idxs=[1], socket=self.port_socket, ) - dmas1 = "txq0@%s-q0;txq1@wq0.0;rxq0@%s-q0;rxq1@wq0.0" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], + dmas1 = "txq0@%s-q0;txq1@%s;rxq0@%s-q0;rxq1@%s" % ( + dsas[0], + wqs[0], + dsas[0], + wqs[0], ) - dmas2 = "txq0@wq0.0;txq1@%s-q0;rxq0@wq0.0;rxq1@%s-q0" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], + dmas2 = "txq0@%s;txq1@%s-q0;rxq0@%s;rxq1@%s-q0" % ( + wqs[0], + dsas[0], + wqs[0], + dsas[0], ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=2,client=1,dmas=[%s]' " @@ -1967,13 +1998,13 @@ class TestVM2VMVirtioUserDsa(TestCase): % (dmas1, dmas2) ) vhost_param = "--nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096 --no-flush-rx" - port_options = {self.use_dsa_list[0]: "max_queues=1"} + port_options = {dsas[0]: "max_queues=1"} self.start_vhost_testpmd( cores=self.vhost_core_list, eal_param=vhost_eal_param, param=vhost_param, no_pci=False, - ports=self.use_dsa_list, + ports=dsas, port_options=port_options, iova_mode="va", ) @@ -2007,20 +2038,24 @@ class TestVM2VMVirtioUserDsa(TestCase): """ Test Case 27: VM2VM packed ring vectorized-tx path test batch processing with dsa dpdk and kernel driver """ - self.DC.create_work_queue(work_queue_number=2, dsa_index=0) - self.use_dsa_list = self.DC.bind_dsa_to_dpdk( - dsa_number=1, + wqs = self.DC.create_wq(wq_num=2, dsa_idxs=[0]) + dsas = self.DC.bind_dsa_to_dpdk_driver( + dsa_num=1, driver_name="vfio-pci", - dsa_index_list=[1], + dsa_idxs=[1], socket=self.port_socket, ) - dmas1 = "txq0@%s-q0;txq1@wq0.0;rxq0@%s-q0;rxq1@wq0.0" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], + dmas1 = "txq0@%s-q0;txq1@%s;rxq0@%s-q0;rxq1@%s" % ( + dsas[0], + wqs[0], + dsas[0], + wqs[0], ) - dmas2 = "txq0@wq0.0;txq1@%s-q0;rxq0@wq0.0;rxq1@%s-q0" % ( - self.use_dsa_list[0], - self.use_dsa_list[0], + dmas2 = "txq0@%s;txq1@%s-q0;rxq0@%s;rxq1@%s-q0" % ( + wqs[0], + dsas[0], + wqs[0], + dsas[0], ) vhost_eal_param = ( "--vdev 'eth_vhost0,iface=vhost-net0,queues=2,client=1,dmas=[%s]' " @@ -2028,13 +2063,13 @@ class TestVM2VMVirtioUserDsa(TestCase): % (dmas1, dmas2) ) vhost_param = "--nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096 --no-flush-rx" - port_options = {self.use_dsa_list[0]: "max_queues=1"} + port_options = {dsas[0]: "max_queues=1"} self.start_vhost_testpmd( cores=self.vhost_core_list, eal_param=vhost_eal_param, param=vhost_param, no_pci=False, - ports=self.use_dsa_list, + ports=dsas, port_options=port_options, iova_mode="va", ) @@ -2072,8 +2107,6 @@ class TestVM2VMVirtioUserDsa(TestCase): self.quit_all_testpmd() self.dut.send_expect("killall -s INT %s" % self.testpmd_name, "#") self.dut.send_expect("killall -s INT %s" % self.pdump_name, "#") - self.DC.reset_all_work_queue() - self.DC.bind_all_dsa_to_kernel() def tear_down_all(self): pass diff --git a/tests/virtio_common.py b/tests/virtio_common.py index 9ad75448..9754f49e 100644 --- a/tests/virtio_common.py +++ b/tests/virtio_common.py @@ -237,90 +237,123 @@ class dsa_common(object): def __init__(self, test_case): self.test_case = test_case - def get_all_work_queue_index(self): + def get_all_dsa_pcis(self): + """ + Get all the DSA device PCI of DUT. + :return: [0000:6a:01.0, 0000:6f:01.0, 0000:74:01.0, 0000:79:01.0] + """ + dsa_pcis = [] + out = self.test_case.dut.send_expect( + "./usertools/dpdk-devbind.py --status-dev dma", "#" + ) + info = out.split("\n") + for item in info: + pci = re.search("\s*(0000:\S*:\d*.\d*)", item) + if pci is not None: + dsa_pcis.append(pci.group(1)) + dsa_pcis.sort() + return dsa_pcis + + def bind_dsa_to_kernel_driver(self, dsa_idx): + """ + Get the DSA device current driver + """ + dsa_pcis = self.get_all_dsa_pcis() + pci = dsa_pcis[dsa_idx] + addr_array = pci.split(":") + domain_id, bus_id, devfun_id = addr_array[0], addr_array[1], addr_array[2] + out = self.test_case.dut.send_expect( + "cat /sys/bus/pci/devices/%s\:%s\:%s/uevent" + % (domain_id, bus_id, devfun_id), + "# ", + alt_session=True, + ) + rexp = r"DRIVER=(.+?)\r" + pattern = re.compile(rexp) + match = pattern.search(out) + if not match: + driver = None + else: + driver = match.group(1) + if driver != "idxd": + self.test_case.dut.send_expect( + "./usertools/dpdk-devbind.py --force --bind=idxd %s" % pci, "# ", 60 + ) + + def get_all_dsa_idxs(self): """ Get all DSA device work queue index. Example: `wq0.0 wq0.1 wq1.0 wq1.1`, return [0, 1] """ - dsa_index_list = [] + dsa_idxs = [] if os.path.exists("/dev/dsa"): out = self.test_case.dut.send_expect("ls /dev/dsa", "# ") info = out.split() for item in info: - index = int(re.search("(\d+)", item).group(0)) - dsa_index_list.append(index) - return list(set(dsa_index_list)) - - def reset_all_work_queue(self): - """ - Reset all DSA device work queue which have created work queue. - After reset all DSA device work queues, the `/dev/dsa/` path will not exist. - """ - dsa_index_list = self.get_all_work_queue_index() - if len(dsa_index_list) > 0: - for dsa_index in dsa_index_list: - self.test_case.dut.send_expect( - "./drivers/dma/idxd/dpdk_idxd_cfg.py --reset %s" % dsa_index, "# " - ) + idx = int(re.search("(\d+)", item).group(0)) + dsa_idxs.append(idx) + return list(set(dsa_idxs)) - def check_dsa_has_work_queue(self, dsa_index): + def check_wq_exist(self, dsa_idx): """ Check DSA device has work queue or not, if has work queue, return True, or return False """ - if dsa_index in self.get_all_work_queue_index(): + if dsa_idx in self.get_all_dsa_idxs(): return True else: return False - def create_work_queue(self, work_queue_number, dsa_index): + def reset_wq(self, dsa_idx): """ - Create work queue by work_queue_number and dsa_index. - :param work_queue_number: number of work queue to be create. - :param dsa_index: index of DSA device which to create work queue. - Example: work_queue_number=4, dsa_index=0, will create 4 work queue under this first DSA device - root@dpdk:~# ls /dev/dsa/ - wq0.0 wq0.1 wq0.2 wq0.3 + Reset DSA device work queue which have created work queue. """ - if self.check_dsa_has_work_queue(dsa_index=dsa_index): + if self.check_wq_exist(dsa_idx): self.test_case.dut.send_expect( - "./drivers/dma/idxd/dpdk_idxd_cfg.py --reset %s" % dsa_index, "# " + "./drivers/dma/idxd/dpdk_idxd_cfg.py --reset %s" % dsa_idx, "# " ) - self.test_case.dut.send_expect( - "./drivers/dma/idxd/dpdk_idxd_cfg.py -q %d %d" - % (work_queue_number, dsa_index), - "# ", - ) - def get_all_dsa_pci(self): + def create_wq(self, wq_num, dsa_idxs): """ - Get all the DSA device PCI of DUT. - :return: [0000:6a:01.0, 0000:6f:01.0, 0000:74:01.0, 0000:79:01.0] + Create work queue by work_queue_number and dsa_idx. + :param wq_num: number of work queue to be create. + :param dsa_idxs: index of DSA device which to create work queue. + Example: wq_num=4, dsa_idx=[0, 1], will create 4 work queue: + root@dpdk:~# ls /dev/dsa/ + wq0.0 wq0.1 wq1.0 wq1.1 """ - dsa_pci = [] - out = self.test_case.dut.send_expect( - "./usertools/dpdk-devbind.py --status-dev dma", "#" - ) - info = out.split("\n") - for item in info: - pci = re.search("\s*(0000:\S*:\d*.\d*)", item) - if pci is not None: - dsa_pci.append(pci.group(1)) - return dsa_pci + for dsa_idx in dsa_idxs: + if self.check_wq_exist(dsa_idx): + self.reset_wq(dsa_idx) + self.bind_dsa_to_kernel_driver(dsa_idx) + self.test_case.dut.send_expect( + "./drivers/dma/idxd/dpdk_idxd_cfg.py -q %d %d" % (wq_num, dsa_idx), + "# ", + ) + wqs = [] + if os.path.exists("/dev/dsa"): + out = self.test_case.dut.send_expect("ls /dev/dsa", "# ") + info = out.split() + for item in info: + idx = int(re.search("(\d+)", item).group(0)) + if idx in dsa_idxs: + wqs.append(item) + return wqs - def bind_dsa_to_dpdk( - self, dsa_number, driver_name="vfio-pci", dsa_index_list="all", socket=-1 + def bind_dsa_to_dpdk_driver( + self, dsa_num, driver_name="vfio-pci", dsa_idxs="all", socket=-1 ): """ Bind DSA device to driver - :param dsa_number: number of DSA device to be bind. + :param dsa_num: number of DSA device to be bind. :param driver_name: driver name, like `vfio-pci`. - :param dsa_index_list: the index list of DSA device, like [2,3] + :param dsa_idxs: the index list of DSA device, like [2,3] :param socket: socket id: like 0 or 1, if socket=-1, use all the DSA deveice no matter on which socket. :return: bind_dsa_list, like [0000:6a:01.0, 0000:6f:01.0] """ - dsa_list = [] - dsa_pci = self.get_all_dsa_pci() - for pci in dsa_pci: + dsas = [] + bind_dsas = [] + dsa_pcis = self.get_all_dsa_pcis() + for pci in dsa_pcis: addr_array = pci.split(":") domain_id, bus_id, devfun_id = addr_array[0], addr_array[1], addr_array[2] cur_socket = self.test_case.dut.send_expect( @@ -331,47 +364,21 @@ class dsa_common(object): ) if socket != -1: if int(cur_socket) == socket: - dsa_list.append(pci) + dsas.append(pci) else: - dsa_list.append(pci) - if dsa_index_list == "all": - bind_dsa_list = dsa_list[0:dsa_number] + dsas.append(pci) + if dsa_idxs == "all": + bind_dsas = dsas[0:dsa_num] else: - tmp_dsa_list = [] - for i in dsa_index_list: - tmp_dsa_list.append(dsa_list[i]) - bind_dsa_list = tmp_dsa_list[0:dsa_number] - bind_dsa_string = " ".join(bind_dsa_list) + tmp_dsas = [] + for i in dsa_idxs: + tmp_dsas.append(dsas[i]) + bind_dsas = tmp_dsas[0:dsa_num] + bind_dsas_str = " ".join(bind_dsas) self.test_case.dut.send_expect( "./usertools/dpdk-devbind.py --force --bind=%s %s" - % (driver_name, bind_dsa_string), + % (driver_name, bind_dsas_str), "# ", 60, ) - return bind_dsa_list - - def bind_all_dsa_to_kernel(self): - """ - Check the DSA device is bind to kernel driver or not, if not bind to kernel driver, then bind to kernel driver. - """ - dsa_pci = self.get_all_dsa_pci() - for pci in dsa_pci: - addr_array = pci.split(":") - domain_id, bus_id, devfun_id = addr_array[0], addr_array[1], addr_array[2] - out = self.test_case.dut.send_expect( - "cat /sys/bus/pci/devices/%s\:%s\:%s/uevent" - % (domain_id, bus_id, devfun_id), - "# ", - alt_session=True, - ) - rexp = r"DRIVER=(.+?)\r" - pattern = re.compile(rexp) - match = pattern.search(out) - if not match: - driver = None - else: - driver = match.group(1) - if driver != "idxd": - self.test_case.dut.send_expect( - "./usertools/dpdk-devbind.py --force --bind=idxd %s" % pci, "# ", 60 - ) + return bind_dsas