Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/104906/?format=api
http://patchwork.dpdk.org/api/patches/104906/?format=api", "web_url": "http://patchwork.dpdk.org/project/dts/patch/20211206094703.3231735-1-weix.ling@intel.com/", "project": { "id": 3, "url": "http://patchwork.dpdk.org/api/projects/3/?format=api", "name": "DTS", "link_name": "dts", "list_id": "dts.dpdk.org", "list_email": "dts@dpdk.org", "web_url": "", "scm_url": "git://dpdk.org/tools/dts", "webscm_url": "http://git.dpdk.org/tools/dts/", "list_archive_url": "https://inbox.dpdk.org/dts", "list_archive_url_format": "https://inbox.dpdk.org/dts/{}", "commit_url_format": "" }, "msgid": "<20211206094703.3231735-1-weix.ling@intel.com>", "list_archive_url": "https://inbox.dpdk.org/dts/20211206094703.3231735-1-weix.ling@intel.com", "date": "2021-12-06T09:47:03", "name": "[V1,2/3] tests/vm2vm_virtio_net_perf: modify and add cases", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": false, "hash": "784b8409a7e5f8ac4de81ec1f2e0d980b401ae5a", "submitter": { "id": 1828, "url": "http://patchwork.dpdk.org/api/people/1828/?format=api", "name": "Ling, WeiX", "email": "weix.ling@intel.com" }, "delegate": null, "mbox": "http://patchwork.dpdk.org/project/dts/patch/20211206094703.3231735-1-weix.ling@intel.com/mbox/", "series": [ { "id": 20867, "url": "http://patchwork.dpdk.org/api/series/20867/?format=api", "web_url": "http://patchwork.dpdk.org/project/dts/list/?series=20867", "date": "2021-12-06T09:46:41", "name": "modify test plan and suite to coverage the test point", "version": 1, "mbox": "http://patchwork.dpdk.org/series/20867/mbox/" } ], "comments": "http://patchwork.dpdk.org/api/patches/104906/comments/", "check": "pending", "checks": "http://patchwork.dpdk.org/api/patches/104906/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<dts-bounces@dpdk.org>", "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])\n\tby inbox.dpdk.org (Postfix) with ESMTP id D5BD6A034F;\n\tMon, 6 Dec 2021 10:56:06 +0100 (CET)", "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id C790C410E5;\n\tMon, 6 Dec 2021 10:56:06 +0100 (CET)", "from mga04.intel.com (mga04.intel.com [192.55.52.120])\n by mails.dpdk.org (Postfix) with ESMTP id 44B5541155\n for <dts@dpdk.org>; Mon, 6 Dec 2021 10:56:04 +0100 (CET)", "from orsmga008.jf.intel.com ([10.7.209.65])\n by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 06 Dec 2021 01:56:03 -0800", "from unknown (HELO localhost.localdomain) ([10.240.183.222])\n by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 06 Dec 2021 01:56:01 -0800" ], "X-IronPort-AV": [ "E=McAfee;i=\"6200,9189,10189\"; a=\"236021280\"", "E=Sophos;i=\"5.87,291,1631602800\"; d=\"scan'208\";a=\"236021280\"", "E=Sophos;i=\"5.87,291,1631602800\"; d=\"scan'208\";a=\"514676855\"" ], "From": "Wei Ling <weix.ling@intel.com>", "To": "dts@dpdk.org", "Cc": "Wei Ling <weix.ling@intel.com>", "Subject": "[dts][PATCH V1 2/3] tests/vm2vm_virtio_net_perf: modify and add cases", "Date": "Mon, 6 Dec 2021 17:47:03 +0800", "Message-Id": "<20211206094703.3231735-1-weix.ling@intel.com>", "X-Mailer": "git-send-email 2.25.1", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "X-BeenThere": "dts@dpdk.org", "X-Mailman-Version": "2.1.29", "Precedence": "list", "List-Id": "test suite reviews and discussions <dts.dpdk.org>", "List-Unsubscribe": "<https://mails.dpdk.org/options/dts>,\n <mailto:dts-request@dpdk.org?subject=unsubscribe>", "List-Archive": "<http://mails.dpdk.org/archives/dts/>", "List-Post": "<mailto:dts@dpdk.org>", "List-Help": "<mailto:dts-request@dpdk.org?subject=help>", "List-Subscribe": "<https://mails.dpdk.org/listinfo/dts>,\n <mailto:dts-request@dpdk.org?subject=subscribe>", "Errors-To": "dts-bounces@dpdk.org" }, "content": "Modify Case 5 code sync with test plan.\nAdd new test case 13 and 14 sync with test plan.\nModify scp file size from 1K to 1024K sync with testplan.\nModify case 2 and 13 except value case name with case 1.\n\nSigned-off-by: Wei Ling <weix.ling@intel.com>\n---\n tests/TestSuite_vm2vm_virtio_net_perf.py | 116 +++++++++++++++++------\n 1 file changed, 87 insertions(+), 29 deletions(-)", "diff": "diff --git a/tests/TestSuite_vm2vm_virtio_net_perf.py b/tests/TestSuite_vm2vm_virtio_net_perf.py\nindex dc8eaed5..1cb9a324 100644\n--- a/tests/TestSuite_vm2vm_virtio_net_perf.py\n+++ b/tests/TestSuite_vm2vm_virtio_net_perf.py\n@@ -125,7 +125,12 @@ class TestVM2VMVirtioNetPerf(TestCase):\n self.dut.send_expect('./usertools/dpdk-devbind.py -u %s' % self.device_str, '# ', 30)\n self.dut.send_expect('./usertools/dpdk-devbind.py --force --bind=ioatdma %s' % self.device_str, '# ', 60)\n \n- def start_vhost_testpmd(self, cbdma=False, no_pci=True, client_mode=False, enable_queues=1, nb_cores=2, rxq_txq=None):\n+ @property\n+ def check_2m_env(self):\n+ out = self.dut.send_expect(\"cat /proc/meminfo |grep Hugepagesize|awk '{print($2)}'\", \"# \")\n+ return True if out == '2048' else False\n+\n+ def start_vhost_testpmd(self, cbdma=False, no_pci=True, client_mode=False, enable_queues=1, nb_cores=2, rxq_txq=None, exchange_cbdma=False, iova_mode=''):\n \"\"\"\n launch the testpmd with different parameters\n \"\"\"\n@@ -150,12 +155,20 @@ class TestVM2VMVirtioNetPerf(TestCase):\n else:\n vdev1 = \"--vdev 'net_vhost0,iface=%s/vhost-net0,client=1,queues=%d%s' \" % (self.base_dir, enable_queues, cbdma_arg_0)\n vdev2 = \"--vdev 'net_vhost1,iface=%s/vhost-net1,client=1,queues=%d%s' \" % (self.base_dir, enable_queues, cbdma_arg_1)\n+ if exchange_cbdma:\n+ vdev1 = \"--vdev 'net_vhost0,iface=%s/vhost-net0,client=1,queues=%d%s' \" % (self.base_dir, enable_queues, cbdma_arg_1)\n+ vdev2 = \"--vdev 'net_vhost1,iface=%s/vhost-net1,client=1,queues=%d%s' \" % (self.base_dir, enable_queues, cbdma_arg_0)\n+\n eal_params = self.dut.create_eal_parameters(cores=self.cores_list, prefix='vhost', no_pci=no_pci)\n if rxq_txq is None:\n params = \" -- -i --nb-cores=%d --txd=1024 --rxd=1024\" % nb_cores\n else:\n params = \" -- -i --nb-cores=%d --txd=1024 --rxd=1024 --rxq=%d --txq=%d\" % (nb_cores, rxq_txq, rxq_txq)\n- self.command_line = testcmd + eal_params + vdev1 + vdev2 + params\n+ if iova_mode:\n+ iova_parm = \" --iova=\" + iova_mode\n+ else:\n+ iova_parm = \"\"\n+ self.command_line = testcmd + eal_params + vdev1 + vdev2 + iova_parm + params\n self.pmd_vhost.execute_cmd(self.command_line, timeout=30)\n self.pmd_vhost.execute_cmd('vhost enable tx all', timeout=30)\n self.pmd_vhost.execute_cmd('start', timeout=30)\n@@ -204,13 +217,13 @@ class TestVM2VMVirtioNetPerf(TestCase):\n self.vm_dut[1].send_expect(\"arp -s %s %s\" % (self.virtio_ip1, self.virtio_mac1), \"#\", 10)\n \n def prepare_test_env(self, cbdma=False, no_pci=True, client_mode=False, enable_queues=1, nb_cores=2,\n- server_mode=False, opt_queue=None, combined=False, rxq_txq=None, vm_config='vhost_sample'):\n+ server_mode=False, opt_queue=None, combined=False, rxq_txq=None, iova_mode=''):\n \"\"\"\n start vhost testpmd and qemu, and config the vm env\n \"\"\"\n self.start_vhost_testpmd(cbdma=cbdma, no_pci=no_pci, client_mode=client_mode, enable_queues=enable_queues,\n- nb_cores=nb_cores, rxq_txq=rxq_txq)\n- self.start_vms(server_mode=server_mode, opt_queue=opt_queue, vm_config=vm_config)\n+ nb_cores=nb_cores, rxq_txq=rxq_txq, iova_mode=iova_mode)\n+ self.start_vms(server_mode=server_mode, opt_queue=opt_queue)\n self.config_vm_env(combined=combined, rxq_txq=rxq_txq)\n \n def start_iperf(self, iperf_mode='tso'):\n@@ -314,11 +327,11 @@ class TestVM2VMVirtioNetPerf(TestCase):\n self.verify(tcp6_info is not None and tcp6_info.group(1) == \"on\",\n \"tx-tcp6-segmentation in vm not right\")\n \n- def check_scp_file_valid_between_vms(self, file_size=1):\n+ def check_scp_file_valid_between_vms(self, file_size=1024):\n \"\"\"\n scp file form VM1 to VM2, check the data is valid\n \"\"\"\n- # default file_size=1K\n+ # default file_size=1024K\n data = ''\n for char in range(file_size * 1024):\n data += random.choice(self.random_string)\n@@ -353,7 +366,7 @@ class TestVM2VMVirtioNetPerf(TestCase):\n self.prepare_test_env(cbdma=True, no_pci=False, client_mode=False, enable_queues=1, nb_cores=2,\n server_mode=False, opt_queue=1, combined=False, rxq_txq=None)\n cbdma_value = self.start_iperf_and_verify_vhost_xstats_info(iperf_mode='tso')\n- expect_value = self.get_suite_cfg()['expected_throughput'][self.running_case]\n+ expect_value = self.get_suite_cfg()['expected_throughput']['test_vm2vm_split_ring_iperf_with_tso']\n self.verify(cbdma_value > expect_value, \"CBDMA enable performance: %s is lower than CBDMA disable: %s.\" %(cbdma_value, expect_value))\n \n def test_vm2vm_split_ring_iperf_with_ufo(self):\n@@ -379,54 +392,69 @@ class TestVM2VMVirtioNetPerf(TestCase):\n \"\"\"\n TestCase5: VM2VM virtio-net split ring mergeable CBDMA enable test with large packet payload valid check\n \"\"\"\n- # This test case need to use QEMU 3.0 to test\n ipef_result = []\n self.get_cbdma_ports_info_and_bind_to_dpdk(cbdma_num=16, allow_diff_socket=True)\n \n- self.logger.info(\"Launch vhost-testpmd with CBDMA and used 8 queue\")\n+ self.logger.info(\"Launch vhost with CBDMA and with 8 queue with VA mode\")\n 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\"\n self.prepare_test_env(cbdma=True, no_pci=False, client_mode=True, enable_queues=8, nb_cores=4,\n- server_mode=True, opt_queue=8, combined=True, rxq_txq=8, vm_config='vm')\n+ server_mode=True, opt_queue=8, combined=True, rxq_txq=8, iova_mode='va')\n self.check_scp_file_valid_between_vms()\n iperf_data_cbdma_enable_8_queue = self.start_iperf_and_verify_vhost_xstats_info(iperf_mode='tso')\n- ipef_result.append(['Enable', 'mergeable path', 8, iperf_data_cbdma_enable_8_queue])\n+ ipef_result.append(['Enable', 'mergeable path with VA mode', 8, iperf_data_cbdma_enable_8_queue])\n \n- self.logger.info(\"Re-launch without CBDMA and used 8 queue\")\n+ self.logger.info(\"Re-launch and exchange CBDMA and with 8 queue with VA mode\")\n self.vhost.send_expect(\"quit\", \"# \", 30)\n- self.start_vhost_testpmd(cbdma=False, no_pci=False, client_mode=True, enable_queues=8, nb_cores=4, rxq_txq=8)\n+ self.start_vhost_testpmd(cbdma=True, no_pci=False, client_mode=True, enable_queues=8, nb_cores=4, rxq_txq=8, exchange_cbdma=True, iova_mode='va')\n self.check_scp_file_valid_between_vms()\n- iperf_data_cbdma_disable_8_queue = self.start_iperf_and_verify_vhost_xstats_info(iperf_mode='tso')\n- ipef_result.append(['Disable','mergeable path', 8, iperf_data_cbdma_disable_8_queue])\n+ iperf_data_cbdma_enable_8_queue_exchange = self.start_iperf_and_verify_vhost_xstats_info(iperf_mode='tso')\n+ ipef_result.append(['Disable','mergeable path exchange CBDMA with VA mode', 8, iperf_data_cbdma_enable_8_queue_exchange])\n+\n+ # This test step need to test on 1G guest hugepage ENV.\n+ if not self.check_2m_env:\n+ self.logger.info(\"Re-launch and exchange CBDMA and with 8 queue with PA mode\")\n+ self.vhost.send_expect(\"quit\", \"# \", 30)\n+ self.start_vhost_testpmd(cbdma=True, no_pci=False, client_mode=True, enable_queues=8, nb_cores=4, rxq_txq=8, exchange_cbdma=True, iova_mode='pa')\n+ self.check_scp_file_valid_between_vms()\n+ iperf_data_cbdma_enable_8_queue_exchange_pa = self.start_iperf_and_verify_vhost_xstats_info(iperf_mode='tso')\n+ ipef_result.append(['Disable', 'mergeable path exchange CBDMA with PA mode', 8, iperf_data_cbdma_enable_8_queue_exchange_pa])\n \n- self.logger.info(\"Re-launch without CBDMA and used 1 queue\")\n+ self.logger.info(\"Re-launch without CBDMA and with 4 queue\")\n self.vhost.send_expect(\"quit\", \"# \", 30)\n- self.start_vhost_testpmd(cbdma=False, no_pci=False, client_mode=True, enable_queues=8, nb_cores=4, rxq_txq=1)\n+ self.start_vhost_testpmd(cbdma=False, no_pci=False, client_mode=True, enable_queues=4, nb_cores=4, rxq_txq=4)\n+ self.config_vm_env(combined=True, rxq_txq=4)\n+ self.check_scp_file_valid_between_vms()\n+ iperf_data_cbdma_disable_4_queue = self.start_iperf_and_verify_vhost_xstats_info(iperf_mode='tso')\n+ ipef_result.append(['Disable', 'mergeable path without CBDMA with 4 queue', 4, iperf_data_cbdma_disable_4_queue])\n+\n+ self.logger.info(\"Re-launch without CBDMA and with 1 queue\")\n+ self.vhost.send_expect(\"quit\", \"# \", 30)\n+ self.start_vhost_testpmd(cbdma=False, no_pci=False, client_mode=True, enable_queues=4, nb_cores=4, rxq_txq=1)\n self.config_vm_env(combined=True, rxq_txq=1)\n self.check_scp_file_valid_between_vms()\n iperf_data_cbdma_disable_1_queue = self.start_iperf_and_verify_vhost_xstats_info(iperf_mode='tso')\n- ipef_result.append(['Disable', 'mergeable path', 1, iperf_data_cbdma_disable_1_queue])\n+ ipef_result.append(['Disable', 'mergeable path without CBDMA with 1 queue', 1, iperf_data_cbdma_disable_1_queue])\n \n self.table_header = ['CBDMA Enable/Disable', 'Mode', 'rxq/txq', 'Gbits/sec']\n self.result_table_create(self.table_header)\n for table_row in ipef_result:\n self.result_table_add(table_row)\n self.result_table_print()\n- self.verify(iperf_data_cbdma_enable_8_queue > iperf_data_cbdma_disable_8_queue, \\\n+ self.verify(iperf_data_cbdma_enable_8_queue > iperf_data_cbdma_disable_4_queue, \\\n \"CMDMA enable: %s is lower than CBDMA disable: %s\" % (\n- iperf_data_cbdma_enable_8_queue, iperf_data_cbdma_disable_8_queue))\n+ iperf_data_cbdma_enable_8_queue, iperf_data_cbdma_disable_4_queue))\n \n def test_vm2vm_split_ring_with_no_mergeable_path_check_large_packet_and_cbdma_enable_8queue(self):\n \"\"\"\n TestCase6: VM2VM virtio-net split ring non-mergeable CBDMA enable test with large packet payload valid check\n \"\"\"\n- # This test case need to use QEMU 3.0 to test\n ipef_result = []\n self.get_cbdma_ports_info_and_bind_to_dpdk(cbdma_num=16, allow_diff_socket=True)\n \n self.logger.info(\"Launch vhost-testpmd with CBDMA and used 8 queue\")\n 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\"\n self.prepare_test_env(cbdma=True, no_pci=False, client_mode=True, enable_queues=8, nb_cores=4,\n- server_mode=True, opt_queue=8, combined=True, rxq_txq=8, vm_config='vm')\n+ server_mode=True, opt_queue=8, combined=True, rxq_txq=8)\n self.check_scp_file_valid_between_vms()\n iperf_data_cbdma_enable_8_queue = self.start_iperf_and_verify_vhost_xstats_info(iperf_mode='tso')\n ipef_result.append(['Enable', 'no-mergeable path', 8, iperf_data_cbdma_enable_8_queue])\n@@ -497,7 +525,6 @@ class TestVM2VMVirtioNetPerf(TestCase):\n \"\"\"\n Test Case 11: VM2VM virtio-net packed ring mergeable 8 queues CBDMA enable test with large packet payload valid check\n \"\"\"\n- # This test case need to use QEMU 3.0 to test\n ipef_result = []\n self.get_cbdma_ports_info_and_bind_to_dpdk(cbdma_num=16, allow_diff_socket=True)\n \n@@ -509,8 +536,6 @@ class TestVM2VMVirtioNetPerf(TestCase):\n self.check_scp_file_valid_between_vms()\n iperf_data_cbdma_enable_8_queue = self.start_iperf_and_verify_vhost_xstats_info(iperf_mode='tso')\n ipef_result.append(['Enable_%d' % i, 'mergeable path', 8, iperf_data_cbdma_enable_8_queue])\n- if i > 0:\n- self.verify(abs(ipef_result[0][3]-ipef_result[i][3])/ipef_result[0][3] < 0.2 ,\"Performance fluctuates too much\")\n self.table_header = ['CBDMA Enable/Disable', 'Mode', 'rxq/txq', 'Gbits/sec']\n self.result_table_create(self.table_header)\n for table_row in ipef_result:\n@@ -521,7 +546,6 @@ class TestVM2VMVirtioNetPerf(TestCase):\n \"\"\"\n Test Case 12: VM2VM virtio-net packed ring non-mergeable 8 queues CBDMA enable test with large packet payload valid check\n \"\"\"\n- # This test case need to use QEMU 3.0 to test\n ipef_result = []\n self.get_cbdma_ports_info_and_bind_to_dpdk(cbdma_num=16, allow_diff_socket=True)\n \n@@ -533,8 +557,42 @@ class TestVM2VMVirtioNetPerf(TestCase):\n self.check_scp_file_valid_between_vms()\n iperf_data_cbdma_enable_8_queue = self.start_iperf_and_verify_vhost_xstats_info(iperf_mode='tso')\n ipef_result.append(['Enable', 'mergeable path', 8, iperf_data_cbdma_enable_8_queue])\n- if i > 0:\n- self.verify(abs(ipef_result[0][3]-ipef_result[i][3])/ipef_result[0][3] < 0.2 ,\"Performance fluctuates too much\")\n+ self.table_header = ['CBDMA Enable/Disable', 'Mode', 'rxq/txq', 'Gbits/sec']\n+ self.result_table_create(self.table_header)\n+ for table_row in ipef_result:\n+ self.result_table_add(table_row)\n+ self.result_table_print()\n+\n+ def test_vm2vm_packed_ring_with_tso_and_cbdma_enable_iova_pa(self):\n+ \"\"\"\n+ Test Case 13: VM2VM packed ring vhost-user/virtio-net CBDMA enable test with tcp traffic when set iova=pa\n+ \"\"\"\n+ # This test case need to test on 1G guest hugepage ENV.\n+ 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\"\n+ self.get_cbdma_ports_info_and_bind_to_dpdk(cbdma_num=2)\n+ self.prepare_test_env(cbdma=True, no_pci=False, client_mode=False, enable_queues=1, nb_cores=2,\n+ server_mode=False, opt_queue=1, combined=False, rxq_txq=None, iova_mode='pa')\n+ self.check_scp_file_valid_between_vms()\n+ cbdma_value = self.start_iperf_and_verify_vhost_xstats_info(iperf_mode='tso')\n+ expect_value = self.get_suite_cfg()['expected_throughput']['test_vm2vm_split_ring_iperf_with_tso']\n+ self.verify(cbdma_value > expect_value, \"CBDMA enable performance: %s is lower than CBDMA disable: %s.\" %(cbdma_value, expect_value))\n+\n+ def test_vm2vm_packed_ring_with_mergeable_path_check_large_packet_and_cbdma_enable_8queue_iova_pa(self):\n+ \"\"\"\n+ Test Case 14: VM2VM virtio-net packed ring mergeable 8 queues CBDMA enable and PA mode test with large packet payload valid check\n+ \"\"\"\n+ # This test case need to test on 1G guest hugepage ENV.\n+ ipef_result = []\n+ self.get_cbdma_ports_info_and_bind_to_dpdk(cbdma_num=16, allow_diff_socket=True)\n+\n+ self.logger.info(\"Launch vhost-testpmd with CBDMA and used 8 queue\")\n+ 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\"\n+ self.prepare_test_env(cbdma=True, no_pci=False, client_mode=False, enable_queues=8, nb_cores=4,\n+ server_mode=False, opt_queue=8, combined=True, rxq_txq=8, iova_mode='pa')\n+ for i in range(0,5):\n+ self.check_scp_file_valid_between_vms()\n+ iperf_data_cbdma_enable_8_queue = self.start_iperf_and_verify_vhost_xstats_info(iperf_mode='tso')\n+ ipef_result.append(['Enable_%d' % i, 'mergeable path', 8, iperf_data_cbdma_enable_8_queue])\n self.table_header = ['CBDMA Enable/Disable', 'Mode', 'rxq/txq', 'Gbits/sec']\n self.result_table_create(self.table_header)\n for table_row in ipef_result:\n", "prefixes": [ "V1", "2/3" ] }{ "id": 104906, "url": "